Как отправить пары ключ/значение в веб-службу с помощью Python/SUDS?

Я пытаюсь получить доступ к действительно простой веб-службе SOAP через скрипт Python, используя библиотеку SUDS.

Вот тело WSDL:

образец wsdl

Код Python, который я использую для отправки этих двух пар ключ/значение, выглядит следующим образом:

url = "http://somewhereontheweb.com/WS.asmx?wsdl"
client = suds.client.Client(url)

try:
    result = client.service.SendKDIRequest({"Key1": value1, "Key2": value2})    
    #display success
except Exception as e:  
    #display error

Ввод их непосредственно в клиент SoapUI говорит о том, что сервис работает корректно. Поэтому я почти уверен, что не отправляю пары ключ/значение так, как их ожидает веб-служба.

Я был бы очень признателен за любую помощь, которую вы, ребята, можете предоставить.


person DrBacchus    schedule 04.11.2011    source источник


Ответы (1)


во-первых, вы можете использовать методы ведения журнала:

client.last_received()
client.last_sent()

они будут выводить xml, который отправляет suds.

также, если вы печатаете клиент

print client

вы увидите, есть ли какие-либо сложные типы, связанные со службой, я предполагаю, что KeyValue будет типом, который вам нужно будет создать, используя:

kv = client.factory.create("ns0:KeyValue")

эта информация должна помочь вам на вашем пути.

Олли

person olly_uk    schedule 04.11.2011