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