RPC是Remote Procedure Call的縮寫,翻譯成中文就是遠程方法調用,是一種在本地的機器上調用遠端機器上的一個過程(方法)的技術,這個過程也被大家稱為“分散式運算”,是為了提高各個分立機器的“互通性”而發明出來的技術。
XML-RPC的全稱是XML Remote Procedure Call,即XML遠程方法調用。
它是一套允許運行在不同作業系統、不同環境的程式實現基於Internet程序呼叫的規範和一系列的實現。
這種遠端程序呼叫使用http作為傳輸協議,XML作為傳送資訊的編碼格式。
Xml-Rpc的定義儘可能的保持了簡單,但同時能夠傳送、處理、返回複雜的資料結構。
Python下的XML-RPC:
1、類庫:xmlrpclib 一般使用在用戶端,這個模組用來調用註冊在XML-RPC伺服器端的函數,xmlrpclib並不是一個型別安全的模組,無法抵禦惡意構造的資料,這方面的一些處理工作需要交給開發人員自己。
2、類庫:SimpleXMLRPCServer 一般是用在伺服器端,這個模組用來構造一個最基本的XML-RPC伺服器架構
3、構造一個基本的XML-RPC Server:
複製代碼 代碼如下:
from SimpleXMLRPCServer import SimpleXMLRPCServer
def is_even(n):
return n%2 == 0
server = SimpleXMLRPCServer(("localhost", 8000))#確定URL和連接埠
print "Listening on port 8000..."
server.register_function(is_even, "is_even") #註冊is_even函數
server.serve_forever()#啟動伺服器,並使其對這個串連可用
4、構造一個基本的XML-RPC Client:
複製代碼 代碼如下:
import xmlrpclib
proxy = xmlrpclib.ServerProxy("http://localhost:8000/")
print "3 is even: %s" % str(proxy.is_even(3))#用戶端調用XML-RPC函數
print "100 is even: %s" % str(proxy.is_even(100))