【发布时间】:2011-07-27 01:59:37
【问题描述】:
服务器代码(基于 Python 库参考):
from xmlrpc.server import SimpleXMLRPCServer
from xmlrpc.server import SimpleXMLRPCRequestHandler
class RequestHandler(SimpleXMLRPCRequestHandler):
rpc_paths = ()
server = SimpleXMLRPCServer(("127.0.0.1", 8000),
requestHandler=RequestHandler)
server.register_introspection_functions()
l = list()
def say_hi():
return 'hi !'
def append(event):
l.append(event)
server.register_function(say_hi)
server.register_function(append)
server.serve_forever()
客户端(解释器从另一个终端窗口启动):
>>> from xmlrpc.client import ServerProxy
>>> s = ServerProxy('http://127.0.0.1', allow_none=True)
>>> s.say_hi()
'hi !'
>>> s.append(1)
Traceback (most recent call last):
...
xmlrpc.client.Fault(Fault 1: "<class 'TypeError'>:cannot
marshal None unless allow_none is enabled")
我该如何解决这个问题?我是不是用不恰当的xmlrpc?
【问题讨论】:
-
对于其他也发现此问题的人,我发现当服务器关闭并且客户端向服务器发送请求时,除非启用了 allow_none,否则导致无法编组 None
标签: python xml-rpc simplexmlrpcserver xmlrpcclient