是否有可能为Python simplexmlrpc服务器允许xmlrpc扩展(数据类型long int
)?
客户端使用Apachexmlrpc,它允许8字节整数。
基本上,我使用这个函数的示例代码来测试它:
def FcnRLong():
x=8000000000L
return x
导致此错误:
Java exception occurred:
org.apache.xmlrpc.XmlRpcException: <type 'exceptions.OverflowError'>:long int exceeds XML-RPC limits
有什么想法吗?Python 2.7是否有支持long int
的xmlrpc服务器?
以下代码段中的第二行将长整数的编组更改为发出<i8>
而不是<int>
。是的,它不太漂亮,但应该可以解决问题。
>>> import xmlrpclib
>>> xmlrpclib.Marshaller.dispatch[type(0L)] = lambda _, v, w: w("<value><i8>%d</i8></value>" % v)
>>> xmlrpclib.dumps((2**63-1,))
'<params>n<param>n<value><i8>9223372036854775807</i8></value></param>n</params>n'