Python的招牌菜xmlrpc

2021-06-27 01:50:30 字數 4635 閱讀 6070

一、簡介

為了解決在系統的80埠提供rpc的服務,而又不影響正在執行的web服務,人們想出了用http協議傳輸rpc包的辦法。對於幾乎是專門用於傳輸文字的http協議,要在其上傳輸rpc封包,最方便的方法莫過於把rpc封包編碼成文字形式——例如xml檔案。

xml- rpc(是由美國userland公司指定的乙個rpc協議。它將rpc資訊封包編碼為xml,然後通過 http傳輸封包;

簡單的理解:

將資料定義為xml格式,通過http協議進行遠端傳輸。

二、好處

1. 傳輸複雜的資料。

2. 通過程式語言的封裝,實現遠端物件的呼叫。

三、python中xmlrpc應用

伺服器端:

from ******xmlrpcserver import *

#import ******xmlrpcrequesthandler

def div(x,y):

return x -y

class math:

def _listmethods(self):

return ['add','pow']

def _methodhelp(self,method):

if method == 'add':

return "add(2,3) =>5"

elif method == 'pow':

return "pow(x,y[,z])=>number"

else:

return ""

def _dispatch(self,method,params):

if method == 'pow':

return pow(*params)

elif method == 'add':

return params[0] + params[1]

else:

raise 'bad method'

server = ******xmlrpcserver(("localhost",8000))

# register_introspection_functions:registers the xml-rpc introspection methods in the system namespace

server.register_introspection_functions()

server.register_function(div,"div")

server.register_function(lambda x,y:x*y,'multiply')

server.register_instance(math())

#serve_forever:handle one request at a time until shutdown.

#polls for shutdown every poll_interval seconds. ignores

#self.timeout. if you need to do periodic tasks, do them in

#another thread.

server.serve_forever()

客戶端:

運**況:

Python的招牌菜xmlrpc

一 簡單介紹 為了解決在系統的80port提供rpc的服務。而又不影響正在執行的web服務。人們想出了用http協議傳輸rpc包的辦法。對於差點兒是專門用於傳輸文字的http協議。要在其上傳輸rpc封包。最方便的方法莫過於把rpc封包編碼成文字形式 比如xml檔案。xml rpc 是由美國userl...

非常菜的Python學習筆記

即將大三了,不能再鹹魚下去了,想要成為乙個可以掌握一門語言的程式媛 python學習是跟著集智的負基礎入門python一步一步來,把遇到的問題和解決方案貼在自己的部落格裡。今天看到了第四課的列表,裡面有個有意思的課後題 街機遊戲人物選擇 fighters ryu e.honda blanka gui...

不能再菜的酸菜的python學習筆記

0324 6.1 集合型別及操作 1 集合使用 和set 建立 2 集合間的操作 交 差 並 補 比較 3 集合型別的方法 add 增加元素 discard 清除元素 pop 取出元素給使用者 等 4 集合型別主要應用 包含關係比較 資料去重 set ls 0325 6.2序列型別及操作 1 序列包...