我得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