我正在“Standard Python Library by Example”之后实现XMLRPCServer。我希望客户能够看到方法签名,我期待
proxy = xmlrpclib.ServerProxy('http://%s:%s' % (host, port))
print proxy.system.methodSignature('list')
(客户端代码)将显示方法签名。
然而,它返回“不支持签名”
以下是SimpleXMLRPCServer的代码:
def system_methodSignature(self, method_name):
"""system.methodSignature('add') => [double, int, int]
Returns a list describing the signature of the method. In the
above example, the add method takes two integers as arguments
and returns a double result.
This server does NOT support system.methodSignature."""
# See http://xmlrpc.usefulinc.com/doc/sysmethodsig.html
return 'signatures not supported'
是否有 easy 方式启用方法签名? 或者SimpleXMLRPCServer真的不支持它们吗?是否有支持methodSignatures的实现?
很高兴知道:如果服务器不支持,为什么包含system_methodSignatures方法? XMLRPC规范?
答案 0 :(得分:2)
注册内省函数。
在此处阅读更多内容:http://www.doughellmann.com/PyMOTW/SimpleXMLRPCServer/#introspection-api
或者看看Django的这个解决方案:http://code.google.com/p/django-xmlrpc/wiki/MethodSignatures