SimpleXMLRPCServer不支持methodSignature?

时间:2012-08-23 14:13:19

标签: python

我正在“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规范?

1 个答案:

答案 0 :(得分:2)

注册内省函数。

在此处阅读更多内容:http://www.doughellmann.com/PyMOTW/SimpleXMLRPCServer/#introspection-api

或者看看Django的这个解决方案:http://code.google.com/p/django-xmlrpc/wiki/MethodSignatures