gpt4 book ai didi

python - 为什么 xmlrpc 客户端不能将项目附加到可通过 xmlrpc 服务器过程访问的列表?

转载 作者:太空宇宙 更新时间:2023-11-04 07:12:09 26 4
gpt4 key购买 nike

服务器代码(基于 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?

最佳答案

您的 XMLRPC 服务器正在引发错误,因为它无法编码 None。您需要将 allow_none=True 添加到服务器构造函数:

server = SimpleXMLRPCServer(("127.0.0.1", 8000),
requestHandler=RequestHandler,
allow_none=True)

关于python - 为什么 xmlrpc 客户端不能将项目附加到可通过 xmlrpc 服务器过程访问的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5503445/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com