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