Мыло получает аргументы с неправильным порядком в витой - PullRequest
3 голосов
/ 28 марта 2012

Теперь я использую twisted.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

похоже, что порядок аргументов совершенно неправильный, так что же происходит и как я могу обеспечить правильный порядок?

1 Ответ

1 голос
/ 02 июня 2012

Не видя functions.searchFlight, это немного сложно сказать, но кажется, что вы передаете запрос в обратном вызове, а затем при условии , что элементы в объявлении находятся в определенномпорядок (они не).

Измените подпись functions.searchFlight, чтобы взять кортеж, и назовите его кортежем в нужном вам порядке.(или передайте заказанный диктовку ... или не предполагайте, что предметы диктовки находятся в том порядке, в котором вы их создали).

...