日期:2014-01-20  浏览次数:20613 次


我得XML-RPC学习是从Eric Kidd的XML-RPC HOWTO开始的,下面是原作的地址,直接看英文原版效果更好。

http://xmlrpc-c.sourceforge.net/xmlrpc-howto/xmlrpc-howto.html

XML-RPC的全称是XML Remote Procedure Call,即XML远程方法调用,故名思义,就是采用XML作为调用远程方法的媒介。由于XML的简单性,所以采用XML-RPC相对比较容易。

下面贴个Python的代码,演示一个XML-RPC的应用:

    python> import xmlrpclib
    python> server = xmlrpclib.Server("http://betty.userland.com/RPC2")
    python> server.examples.getStateName(41)
    'South Dakota'

非常简单的函数调用。

XML-RPC协议的说明书是http://www.xmlrpc.com/spec,作者是Dave Winer。有兴趣可以参考参考,下面贴一个简单的用于通讯的XML。

    <methodCall>
      <methodName>sample.sumAndDifference</methodName>
      <params>
        <param><value><int>5</int></value></param>
        <param><value><int>3</int></value></param>
      </params>
    </methodCall>

XML-RPC本身支持很多数据类型,下面是他支持的数据类型清单:
int:有符号32位整型数 string:ASCII字符串,可以包含NULL字节。(实际上很多XML-RPC支持Unicode,这要归功于XML的潜在特性。)boolean:true 或者 false double:双精度浮点数dateTime.iso8601:日期,很不幸的是自从XML-RPC禁止了使用时区,这个便很少被使用了。base64:任意长度的原始二进制数据;使用Base64算法编码,非常有用。array:一维数组struct:一组“键-值”对,“键”是字符串,“值”可以是任何类型。
XML-RPC的历史参考http://xmlrpc-c.sourceforge.net/xmlrpc-howto/xmlrpc-howto-history.html