使用
from twisted.web import soap, xmlrpc, resource, server
import os
def getQuote():
return "Victory to the burgeois, you capitalist swine!"
class XMLRPCQuoter(xmlrpc.XMLRPC):
def xmlrpc_quote(self):
return getQuote()
class SOAPQuoter(soap.SOAPPublisher):
def soap_quote(self):
return getQuote()
def main():
from twisted.internet import reactor
root = resource.Resource()
root.putChild('RPC2', XMLRPCQuoter())
root.putChild('SOAP', SOAPQuoter())
reactor.listenTCP(7080, server.Site(root))
reactor.run()
if __name__ == '__main__':
main()
我得到“::1:0:找不到元素”。查看回溯,我可以看到进行此调用时引发了异常
p, header, body, attrs = SOAPpy.parseSOAPRPC(data, 1, 1, 1)
我还测试了另一个twisteSOAP 程序,我认为这是有一些版本问题。我在 ubuntu 12.04 上,带有扭曲的 11.01。
可能是一些与 python 和 xml 相关的版本。有人有类似的吗?
如果我在 /usr/lib/python2.7/dist-packages/twisted/web/soap.py 中添加以下代码,在第 52 行
f = open('/tmp/nannata', 'w')
f.write(data)
f.close()
查看 /tmp/nannata 我可以看到该文件是无效的!所以解析问题,大概就是指这个……