2014-12-13 3 views
0

Это первый раз, когда я использую SOAP, и я пытаюсь отправить служебный вызов, используя python. Я использовал SOAPy и pysimplesoap как клиентские библиотеки.Отправка вызова службы на основе протокола SOAP

У меня есть следующие:

  1. WSDL File.
  2. XSD-файл.
  3. Имя метода, которое я пытаюсь выполнить.
  4. Все необходимые параметры.

Что я хочу сделать:

  1. Выполнить метод.
  2. Получить xml файл, возвращенный из метода.

Это рабочий PHP Script как я хочу, но мне это нужно в Python.

ответ

0

Просто используйте этот кусок кода:

from pysimplesoap.client import SoapClient 
client = SoapClient(wsdl="your_file.wsdl",trace=False) 
response = client.YourMehtod(p="parameter") 
result = response['YourResult'] 

вещей, которые вы должны получить от этого куска кода:

  1. «your_file.wsdl» должен быть URL, указывающие на ваш WSDL-х местоположение файла. Может быть URL-адрес HTTP или FILE, хранящийся в вашей файловой системе.
  2. YourMethod это имя метода, который вы пытаетесь вызвать (чтобы получить все доступные методы для вас, используйте print client после вызова во второй строке фрагмента кода.
  3. YourRestult результат вы получаете от вызов. Используйте print response, чтобы проверить все результаты, которые вы получаете.

вы также могли бы рассмотреть возможность использования suds библиотеку, если SOAP КЛИЕНТ все, что вы заботитесь о.

+0

1. Я получил ** неожиданный аргумент ключевого слова ** из-за _trace_ при инициализации SoapClient. 2. Третья строка кода бросает ** TypeError ** _call() принимает ровно 3 аргумента (2 данных) _ – mbanayosi

+0

Для ** неожиданного ключевого слова ** вы, вероятно, используете другую версию ** pysimplesoap * *. Просто удалите этот параметр. Вторая ошибка явно заключается в том, что ваш удаленный метод принимает более одного аргумента. Просто добавьте столько параметров, сколько вам нужно. –

+0

Каким должен быть параметр? Я попробовал _dict_, массив _tuples_, и оба не удалось. – mbanayosi

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