XML-RPC扭曲错误
|
在http://buildbot.twistedmatrix.com/builds/sphinx-html/291-15849/projects/web/howto/xmlrpc.html上运行第一个示例时,客户端和服务器端均出现异常。我使用的服务器代码如下:
from twisted.web import xmlrpc, server
class Example(xmlrpc.XMLRPC):
\"\"\"An example object to be published.\"\"\"
def xmlrpc_echo(self, x):
\"\"\"
Return all passed args.
\"\"\"
return x
def xmlrpc_add(self, a, b):
\"\"\"
Return sum of arguments.
\"\"\"
return a + b
def xmlrpc_fault(self):
\"\"\"
Raise a Fault indicating that the procedure should not be used.
\"\"\"
raise xmlrpc.Fault(123, \"The fault procedure is faulty.\")
if __name__ == \'__main__\':
from twisted.internet import reactor
r = Example()
reactor.listenTCP(7080, server.Site(r))
reactor.run()
客户端如下:
import xmlrpclib
s = xmlrpclib.Server(\'http://localhost:7080/\')
print s.echo(\'Hello world\')
服务器端异常是:
Traceback (most recent call last):
File \"/usr/lib/python2.6/dist-packages/twisted/web/xmlrpc.py\", line 150, in render_POST
d.addCallback(self._cbRender, request, responseFailed)
File \"/usr/lib/python2.6/dist-packages/twisted/internet/defer.py\", line 260, in addCallback
callbackKeywords=kw)
File \"/usr/lib/python2.6/dist-packages/twisted/internet/defer.py\", line 249, in addCallbacks
self._runCallbacks()
File \"/usr/lib/python2.6/dist-packages/twisted/internet/defer.py\", line 441, in _runCallbacks
self.result = callback(self.result, *args, **kw)
--- <exception caught here> ---
File \"/usr/lib/python2.6/dist-packages/twisted/web/xmlrpc.py\", line 170, in _cbRender
allow_none=self.allowNone)
exceptions.TypeError: dumps() got an unexpected keyword argument \'allow_none\'
客户端例外是:
Traceback (most recent call last):
File \"./client.py\", line 6, in <module>
print s.echo(\'Hello world\')
File \"/usr/local/lib/python2.6/dist-packages/xmlrpclib-1.0.1-py2.6.egg/xmlrpclib.py\", line 986, in __call__
return self.__send(self.__name, args)
File \"/usr/local/lib/python2.6/dist-packages/xmlrpclib-1.0.1-py2.6.egg/xmlrpclib.py\", line 1239, in __request
verbose=self.__verbose
File \"/usr/local/lib/python2.6/dist-packages/xmlrpclib-1.0.1-py2.6.egg/xmlrpclib.py\", line 1037, in request
return self._parse_response(h.getfile(), sock)
File \"/usr/local/lib/python2.6/dist-packages/xmlrpclib-1.0.1-py2.6.egg/xmlrpclib.py\", line 1136, in _parse_response
p.close()
File \"/usr/local/lib/python2.6/dist-packages/xmlrpclib-1.0.1-py2.6.egg/xmlrpclib.py\", line 508, in close
self._parser.Parse(\"\", 1) # end of data
xml.parsers.expat.ExpatError: no element found: line 1, column 0
没有找到相关结果
已邀请:
1 个回复
浆错
即这对我有用。也许您以某种方式正在使用旧版本的xmlrpclib?