首页 > 解决方案 > Python 2.7 XML RPC:如何获取服务器上的传入请求?

问题描述

嗨,我正在尝试使用 SimpleXMLRPCServer 作为服务器和 xmlrpclib 作为客户端的 XML RPC 的典型客户端、服务器示例。到目前为止,这是我得到的:

class MyServer(SimpleXMLRPCServer, SimpleXMLRPCRequestHandler, BaseHTTPRequestHandler):
    client_adress = None
    request = None

    def process_request(self, request, client_address):
        self.client_address = client_address
        self.request = request
        return SimpleXMLRPCServer.process_request(
            self, request, client_address)

server = MyServer(('localhost', 9000), logRequests=True)
# Expose a function
def list_contents(dir_name):
    logging.debug('list_contents(%s)', dir_name)
    print(server.client_address)
    print(server.request)
    return os.listdir(dir_name)


server.register_function(list_contents)

try:
    print 'Use Control-C to exit'
    server.serve_forever()
except KeyboardInterrupt:
    print 'Exiting'

这是调用 list_contents 函数的客户端:

proxy = xmlrpclib.ServerProxy('http://localhost:9000', verbose=True)
print proxy.list_contents('/tmp')

现在我的目标是获取客户端在服务器内部发送的请求,以便我可以将其封装在一些数据结构或类中。我需要服务器内部的信息才能在我正在处理的 erp 系统中显示它。除了 SimpleXMLRPCServer 之外,是否还有其他值得推荐的包,因为“简单”表示缺少一些可能很方便的功能。

标签: pythonxmlpython-2.7httpxml-rpc

解决方案


推荐阅读