RPC是Remote Procedure Call的縮寫,翻譯成中文就是遠(yuǎn)程方法調(diào)用,是一種在本地的機(jī)器上調(diào)用遠(yuǎn)端機(jī)器上的一個(gè)過程(方法)的技術(shù),這個(gè)過程也被大家稱為“分布式計(jì)算”,是為了提高各個(gè)分立機(jī)器的“互操作性”而發(fā)明出來的技術(shù)。
XML-RPC的全稱是XML Remote Procedure Call,即XML遠(yuǎn)程方法調(diào)用。
它是一套允許運(yùn)行在不同操作系統(tǒng)、不同環(huán)境的程序?qū)崿F(xiàn)基于Internet過程調(diào)用的規(guī)范和一系列的實(shí)現(xiàn)。
這種遠(yuǎn)程過程調(diào)用使用http作為傳輸協(xié)議,XML作為傳送信息的編碼格式。
Xml-Rpc的定義盡可能的保持了簡單,但同時(shí)能夠傳送、處理、返回復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。
Python下的XML-RPC:
1、類庫:xmlrpclib 一般使用在客戶端,這個(gè)模塊用來調(diào)用注冊在XML-RPC服務(wù)器端的函數(shù),xmlrpclib并不是一個(gè)類型安全的模塊,無法抵御惡意構(gòu)造的數(shù)據(jù),這方面的一些處理工作需要交給開發(fā)者自己。
2、類庫:SimpleXMLRPCServer 一般是用在服務(wù)器端,這個(gè)模塊用來構(gòu)造一個(gè)最基本的XML-RPC服務(wù)器框架
3、構(gòu)造一個(gè)基本的XML-RPC Server:
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函數(shù)
server.serve_forever()#啟動(dòng)服務(wù)器,并使其對這個(gè)連接可用
4、構(gòu)造一個(gè)基本的XML-RPC Client:
新聞熱點(diǎn)
疑難解答
圖片精選