python使用xmlrpc實(shí)例講解
RPC是Remote Procedure Call的縮寫(xiě),翻譯成中文就是遠(yuǎn)程方法調(diào)用,是一種在本地的機(jī)器上調(diào)用遠(yuǎn)端機(jī)器上的一個(gè)過(guò)程(方法)的技術(shù),這個(gè)過(guò)程也被大家稱為“分布式計(jì)算”,是為了提高各個(gè)分立機(jī)器的“互操作性”而發(fā)明出來(lái)的技術(shù)。
XML-RPC的全稱是XML Remote Procedure Call,即XML遠(yuǎn)程方法調(diào)用。
它是一套允許運(yùn)行在不同操作系統(tǒng)、不同環(huán)境的程序?qū)崿F(xiàn)基于Internet過(guò)程調(diào)用的規(guī)范和一系列的實(shí)現(xiàn)。
這種遠(yuǎn)程過(guò)程調(diào)用使用http作為傳輸協(xié)議,XML作為傳送信息的編碼格式。
Xml-Rpc的定義盡可能的保持了簡(jiǎn)單,但同時(shí)能夠傳送、處理、返回復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。
Python下的XML-RPC:
1、類庫(kù):xmlrpclib 一般使用在客戶端,這個(gè)模塊用來(lái)調(diào)用注冊(cè)在XML-RPC服務(wù)器端的函數(shù),xmlrpclib并不是一個(gè)類型安全的模塊,無(wú)法抵御惡意構(gòu)造的數(shù)據(jù),這方面的一些處理工作需要交給開(kāi)發(fā)者自己。
2、類庫(kù):SimpleXMLRPCServer 一般是用在服務(wù)器端,這個(gè)模塊用來(lái)構(gòu)造一個(gè)最基本的XML-RPC服務(wù)器框架
3、構(gòu)造一個(gè)基本的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") #注冊(cè)is_even函數(shù)
server.serve_forever()#啟動(dòng)服務(wù)器,并使其對(duì)這個(gè)連接可用
4、構(gòu)造一個(gè)基本的XML-RPC Client:
import xmlrpclib
proxy = xmlrpclib.ServerProxy("http://localhost:8000/")
print "3 is even: %s" % str(proxy.is_even(3))#客戶端調(diào)用XML-RPC函數(shù)
print "100 is even: %s" % str(proxy.is_even(100))
相關(guān)文章
基于Flask實(shí)現(xiàn)的Windows事件ID查詢系統(tǒng)
Windows操作系統(tǒng)的事件日志系統(tǒng)記錄了數(shù)百種不同的事件ID,每個(gè)ID對(duì)應(yīng)特定的系統(tǒng)事件,本文介紹如何構(gòu)建一個(gè)基于Web的事件ID查詢系統(tǒng),文章通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04
Django rest framework工具包簡(jiǎn)單用法示例
這篇文章主要介紹了Django rest framework工具包簡(jiǎn)單用法,結(jié)合匿名訪問(wèn)控制的具體實(shí)例分析了Django rest framework工具包的注冊(cè)、路由設(shè)置、視圖、權(quán)限控制、配置等相關(guān)操作技巧,需要的朋友可以參考下2018-07-07
在Python中采集Prometheus數(shù)據(jù)的詳細(xì)用法教程
Prometheus是一個(gè)開(kāi)源的監(jiān)控和警報(bào)工具,專門(mén)用于記錄和查詢時(shí)間序列數(shù)據(jù),它提供了一個(gè)強(qiáng)大的查詢語(yǔ)言PromQL(Prometheus Query Language),允許用戶根據(jù)不同的標(biāo)簽和指標(biāo)選擇特定的時(shí)間序列數(shù)據(jù),本文將詳細(xì)介紹如何在Python中采集Prometheus數(shù)據(jù)2024-07-07
解決運(yùn)行出現(xiàn)''dict'' object has no attribute ''has_key''問(wèn)題
這篇文章主要介紹了快速解決出現(xiàn)class object has no attribute ' functiong' or 'var'問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07

