网络编程
位置:首页>> 网络编程>> Asp编程>> 关注oblog 关注xml-rpc 自己开发客户端小记(2)

关注oblog 关注xml-rpc 自己开发客户端小记(2)

 来源:asp之家 发布时间:2009-10-04 20:27:00 

标签:oblog,xml-rpc,客户端

不想新开帖子,就在本文内进行修改好了,程序基本上已经完成,现在把部分昨天由于记忆不详实的部分内容贴出来,首先是ini操作用的1组函数,很方便的:

Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" ( _
    ByVal lpApplicationName As String, _
    ByVal lpKeyName As Any, _
    ByVal lpDefault As String, _
    ByVal lpReturnedString As String, _
    ByVal nSize As Long, _
    ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" ( _
    ByVal lpApplicationName As String, _
    ByVal lpKeyName As Any, _
    ByVal lpString As Any, _
    ByVal lpFileName As String) As Long
Dim s1, s2, s3, s, i

'以下两个函数,读/写ini文件,节点Node ,in_key为写入/读取的主键
'返回值仅仅针对逻辑值:
'Y:yes,N:no,E:error
Public Function GetIniTF(ByVal IniFile_Name As String, ByVal Node As String, ByVal In_Key As String) As Boolean
    On Error GoTo GetIniTFErr
        GetIniTF = True
        Dim GetStr As String
        GetStr = VBA.String(128, 0)
        
        GetPrivateProfileString Node, In_Key, "", GetStr, 256, App.Path & "\" & IniFile_Name
        GetStr = VBA.Replace(GetStr, VBA.Chr(0), "")
        If GetStr = "1" Then
            GetIniTF = True
            GetStr = ""
        Else
            GoTo GetIniTFErr
        End If
        Exit Function
GetIniTFErr:
        Err.Clear
        GetIniTF = False
        GetStr = ""
End Function

Public Function WriteIniTF(ByVal IniFile_Name As String, ByVal Node As String, ByVal In_Key As String, ByVal In_Data As Boolean) As Boolean
    On Error GoTo WriteIniTFErr
    WriteIniTF = True
    If In_Data = True Then
        WritePrivateProfileString Node, In_Key, "1", App.Path & "\" & IniFile_Name
    Else
        WritePrivateProfileString Node, In_Key, "0", App.Path & "\" & IniFile_Name
    End If
    Exit Function
WriteIniTFErr:
    Err.Clear
    WriteIniTF = False
End Function


'以下两个函数,读/写ini文件,不固定节点,in_key为写入/读取的主键
'针对字符串值
'空值表示出错
Public Function GetIniStr(ByVal IniFile_Name As String, ByVal Node As String, ByVal In_Key As String) As String
    On Error GoTo GetIniStrErr
    If VBA.Trim(In_Key) = "" Then
        GoTo GetIniStrErr
    End If
    Dim GetStr As String
    GetStr = VBA.String(128, 0)
    GetPrivateProfileString Node, In_Key, "", GetStr, 256, App.Path & "\" & IniFile_Name
    GetStr = VBA.Replace(GetStr, VBA.Chr(0), "")
    If GetStr = "" Then
        GoTo GetIniStrErr
    Else
        GetIniStr = GetStr
        GetStr = ""
    End If
    Exit Function
GetIniStrErr:
    Err.Clear
    GetIniStr = ""
    GetStr = ""
End Function

Public Function WriteIniStr(ByVal IniFile_Name As String, ByVal Node As String, ByVal In_Key As String, ByVal In_Data As String) As Boolean
    On Error GoTo WriteIniStrErr
    WriteIniStr = True
    If VBA.Trim(In_Data) = "" Or VBA.Trim(In_Key) = "" Or VBA.Trim(Node) = "" Then
        GoTo WriteIniStrErr
    Else
        WritePrivateProfileString Node, In_Key, In_Data, App.Path & "\" & IniFile_Name
    End If
    Exit Function
WriteIniStrErr:
    Err.Clear
    WriteIniStr = False
    'MsgBox " 1"
End Function

然后确定一下我使用的组件,大家需要的话,可以自己去下载:

PocketSOAP.1.5.4.exe   (安装文件)

官方站点  :  http://www.pocketsoap.com/ 

具体的使用帮助可以参考这个 :http://www.pocketsoap.com/pocketHTTP/

接下来的工作就简单了,合成xml,进行发送.

基本的格式如下:

<?xml version="1.0" encoding="utf-8" ?><methodCall>

<methodName>metaWeblog.getRecentPosts</methodName>

<params><param><value>

<string>0</string></value></param>

<param><value><string>user</string></value></param>

<param><value><string>pass</string></value></param>

<param><value><int>3</int></value></param>

</params></methodCall>

单项目发送成功后会返回相应的xml代码,至于处理不处理就是你的问题了,反正我需要的只是发送功能。

发送的匹配字符串是 metaWeblog.newPost

每次发送的时候都要把内容转换为xml再发出去 =。=

程序发布出来玩一下,请慎重使用,被删除id别怪我...

下载地址:

http://www.520hacker.com/LivePage/project/OblogSender/oblog4sender.rar

有问题欢迎交流

QQ 631119     QQ群 435939

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com