Уведомления

Группа в Telegram: присоединиться

#1 Авг. 15, 2019 07:27:16

metotron
Зарегистрирован: 2015-08-20
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Как правильно передать параметры в SOAP через zeep

Привет!
Судьба свела меня с SOAP и я попал.
Имеется библиотека zeep и необходимо отправить запрос на сервер.
Для этого написал:

 soap_client = Client(wsdl=wsdl)
response = soap_client.service[name](**kwargs)
где name - название сервиса (метода) которому я отправляю запрос и
**kwargs соответствнно аргументы

альтернативное написание будет
 soap_client = Client(wsdl=wsdl)
response = soap_client.service.ServiceName(param1=value1, param2=value2,...paramN=valueN)
все было хорошо до тех пор, пока не пришлось столкнуться с запросом, который в json выглядит примерно так:
 { "UserID": "user",
  "Password": "password",
  "CaseID": "",
  "Panels":
  { 
    "Panel":
     {"Code": "Ad Hoc",
       "PanelDescription": "",
       "Type": "Fluid",
       "SubstancesTested": [
       {
         "SubstanceName": "AAA",
         "SubstanceCode": "AAA",
         "SubstanceResult": "NEGATIVE"
         },
         {
         "SubstanceName": "BBB",
         "SubstanceCode": "BBB",
         "SubstanceResult": "NEGATIVE"
         }]
        }
}
И вот тут началась проблема
got an unexpected keyword argument 'Code'
При этом каждый запуск выдается новое название поля из тех, что внутри Panels. Я полагаю, что в аргумент Panels надо передать данные не как json, но вот как я не могу найти

Возможно кто-то из вас сталкивался с данным поведением и может подсказать куда “рыть” чтобы решить проблему
Спасибо

Офлайн

#2 Авг. 15, 2019 07:36:02

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 6408
Репутация: +  569  -
Профиль   Отправить e-mail  

Как правильно передать параметры в SOAP через zeep

metotron
Судьба свела меня с SOAP и я попал.
Имеется библиотека zeep и необходимо отправить запрос на сервер.
Эта библиотека не работает. Она похожа на настоящую, но с ней ни один SOAP-запрос не разберёшь. Используй обычный lxml для прямой работы с XML.



Отредактировано py.user.next (Авг. 15, 2019 07:44:08)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version