Я пытаюсь взаимодействовать с ресурсом WSDL XML. Я запускаю «python -mzeep wsdl» из командной строки и получаю список операций в отношении этого ресурса.
Операция
Login(Username: xsd:string, Password: xsd:string, TenantID: xsd:string) -> xsd:string
Logout(SessionID: xsd:string)
Query(body: ns0:_____Query, header:ns0:Auth, _soapheaders={header:ns0:Auth}) -> Code: xsd:String, Records: ns0: ___Records, Slice: ns0: ___SliceResult
При использовании Python 2.7 у меня возникают проблемы при вызове операции запроса. Следующий код успешно выполняется, вызывая операцию входа в систему.
from zeep import Client, Settings
wsdl = 'wsdl_resource'
settings = Settings(strict=False)
client = Client(wsdl=wsdl, settings=settings)
client.service.Login(Username='user_name', Password='pass_word)
Следующие работы обеспечивают следующий вывод уникальным 'session_id'. В строковом формате.
Тем не менее, при попытке использовать оператор запроса:
client.service.Query( , , ,)
У меня проблемы с передачей ожидаемых аргументов и получением следующих записей.
Если я попробую следующее:
client.service.Query(body=' __Query', header='Auth')
Я получаю следующий ответ:
{
'Code': None,
'Records': None,
'Slice': None,
'_raw_elements': deque()
}
Ясно, что ресурс существует, однако возникают проблемы с получением записей. Я предполагаю, что это связано с тем, что не переданы правильные аргументы в client.service.Query (,,).
Кто-нибудь имеет опыт работы с Zeep? Может ли кто-то пролить свет на понимание параметров, передаваемых в Операцию запроса?