2015-10-20 2 views
0

Я пытаюсь использовать Python и библиотеку пены, чтобы вытащить некоторые данные из веб-службы SOAP, в которой хранятся мои данные. К сожалению, я до сих пор не делал этого через веб-службу SOAP и немного запутался. Вот код, который у меня есть до сих пор:Python Suds сложные типы confusion

from suds.client import Client 
wsdl = 'http://ws-argos.clsamerica.com/argosDws/services/DixService?wsdl' 
client =Client(wsdl) 
f1 = client.factory.create('ns0:baseRequestType') 
f1.username ='xxxxx' 
f1.password='xxxxx' 
f1.programNumber='9999' 
f1.nbDaysFromNow = '5' 
print f1 
print client.service.getObsCsv(f1) 

Выполнение этого кода дает мне общую ошибку WebFault. Таким образом, мне трудно отлаживать и выяснять, что я делаю неправильно. Я подозреваю, что это связано с сложными типами запросов, которые я пытаюсь создать на фабрике с пеной. Кто-нибудь может понять, что я здесь делаю неправильно?

ответ

0

Будучи немного n00b себя, я думаю, что я могу по крайней мере, внести свой вклад, сообщая вам, что подпись службы getObsCsv() не требует объекта BaseRequestType, но и для отдельных значений, которые все базовые типы:

getObsCsv(xs:string username, xs:string password, xs:string programNumber, xs:string platformId, xs:string wmo, xs:int nbMaxObs, ns0:periodType period, xs:int nbDaysFromNow) 

Если это так, печать клиента с помощью:

print client 

уступит подпись, как этот в списке методов:

getObsCsv(baseRequestType baseRequestType) 

В принципе, ваша подпись службы НЕ ожидает сложного типа, поэтому, я думаю, вы неправильно звоните в свою службу.

Смежные вопросы