我得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。
1<methodcall>
2<methodname>sample.sumAndDifference</methodname>
3<params>
4<param/><value><int>5</int></value>
5<param/><value><int>3</int></value>
6</params>
7</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