Python 中的 XMLRPC 伺服器和客戶端模組


我們可以使用 XML-RPC 協議建立自己的跨平臺、與語言無關的伺服器。我們使用 SimpleXMLRPCServer 建立 SimpleXMLRPCServer 例項,並告訴它監聽傳入的請求。接下來我們將定義一些函式作為這個服務的一部分,並註冊這些函式,以便伺服器知道如何呼叫它們。

執行伺服器

在下例中,我們使用 SimpleXMLRPCServer 例項建立了一個伺服器,並註冊了一些預定義的以及自定義的函式。最後,我們將伺服器放入一個無限迴圈,接收請求並做出響應。

示例

from xmlrpc.server import SimpleXMLRPCServer
from xmlrpc.server import SimpleXMLRPCRequestHandler
class RequestHandler(SimpleXMLRPCRequestHandler):
   rpc_paths = ('/RPC2',)
with SimpleXMLRPCServer(('localhost', 9000),
                        requestHandler=RequestHandler) as server:
   server.register_introspection_functions()
   # Register len() function;
   server.register_function(len)
   # Register a function under a different name
   @server.register_function(name='rmndr')
   def remainder_function(x, y):
      return x // y
   # Register a function under function.__name__.
   @server.register_function
   def modl(x, y):
      return x % y
   server.serve_forever()

一旦上述伺服器執行,就可以由客戶端程式呼叫它,客戶端程式可以引用這些函式並呼叫函式。

執行客戶端

示例

import xmlrpc.client
s = xmlrpc.client.ServerProxy('https://:9000')
print(s.len("Tutorialspoint"))
print(s.rmndr(12,5))
print(s.modl(7,3))
# Print list of available methods
print(s.system.listMethods())

輸出

執行上述程式碼後會產生以下結果 -

14
2
1
['len', 'modl', 'rmndr', 'system.listMethods', 'system.methodHelp', 'system.methodSignature']

更新於:2021 年 1 月 25 日

超過 3K 的瀏覽量

開啟你的 職業生涯

完成課程並獲得認證

開始學習
廣告
© . All rights reserved.