Как мне создать нестандартный тип с помощью SOAPpy?

StackOverflow https://stackoverflow.com/questions/118467

  •  02-07-2019
  •  | 
  •  

Вопрос

Я звоню веб-сервис WSDL из Python с использованием Мыльный.Вызов, который мне нужно сделать, относится к методу Auth_login - Авторизация.Это имеет 2 аргумента - первый, строка, являющаяся ключом API;второй, а пользовательский тип, содержащий имя пользователя и пароль.Пользовательский тип называется Auth_credentialsData, который содержит 2 значения в виде stings - одно для имени пользователя и одно для пароля.Как я могу создать этот пользовательский тип с помощью SOAPpy?Я попытался передать список и словарь, но ни один из них не сработал.

Код до сих пор:

from SOAPpy import WSDL

wsdlUrl = 'https://ws.pingdom.com/soap/PingdomAPI.wsdl'
client = WSDL.Proxy(wsdlUrl)

Пробовал и то, и другое:

credentials = ['email@example.com', 'password']
client.Auth_login('key', credentials)

и

credentials = {'username': 'email@example.com', 'password': 'passsword'}
client.Auth_login('key', credentials)

оба из которых выдают сообщение о сбое аутентификации.

Это было полезно?

Решение

Лучший метод - использовать модуль ZSI soap, который позволяет вам взять файл WDSL и преобразовать его в классы и методы, которые вы затем можете использовать для его вызова.Онлайновая документация представляет собой на их веб-сайте но последнюю документацию легче найти в исходном пакете.Если вы устанавливаете в Debian / Ubuntu (имя пакета python-zsi), документация находится в /usr/share/doc / python-zsi в паре PDF-файлов, которые вы можете найти там.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top