现在我使用twisted.soap来构建我的soap服务器,我想用这样的多个参数构建一个函数:
def soap_searchFlight(self,name=None,startpoint=None,destination=None):
d=Deferred()
d.addCallback(functions.searchFlight)
d.addErrback(functions.failure)
print "name"+name
print "startpoint"+startpoint
print "destination"+destination
requestdic={"name":name,"startpoint":startpoint,"destination":destination}
print requestdic
d.callback(requestdic)
return d.result
我写了一个测试脚本:
import SOAPpy
import twisted
p = SOAPpy.SOAPProxy('http://localhost:7080/')
p.config.dumpSOAPOut=1
p.config.dumpSOAPIn=1
print p.searchFlight(name='3548',startpoint="北京飞机场",destination="上海飞机场")
它让我回来了:
name上海飞机场
startpoint北京飞机场
destination3548
看起来args命令是完全错误的,所以会发生什么以及如何确保正确的顺序?
答案 0 :(得分:1)
没有看到functions.searchFlight
,这有点难以辨别,但似乎你在回调中将一个字典传递给in,然后假设该字典中的项目是按特定顺序(他们不是)。
更改functions.searchFlight
的签名以获取元组,并按照您想要的顺序使用元组调用它。 (或传递一个有序的字典......或者不要假设字典的项目按照你创建的顺序)。