Клиент SOAP 1.2 python

Я ищу клиент python SOAP 1.2, но кажется, что это не существует. Все существующие клиенты или не maintainted или только совместимы с SOAP 1.1:

  • пена
  • SOAPpy
  • ZSI
14
задан Jeff LaFay 17 March 2011 в 02:35
поделиться

3 ответа

Библиотека zeep поддерживает как SOAP 1.1 и 1.2, если WSDL службы правильно указывает это.

WSF / Python поддерживает SOAP 1.2.

ВВЕДЕНИЕ

WSF / Python - это расширение языка Python для WSO2 WSF / C [ http://www.wso2.org/projects/wsf/c] {. {1}} Эта версия позволяет использовать / предоставлять веб-службы как с REST, так и с SOAP.

  • Поддержка REST
  • Поддержка SOAP 1.1
  • Поддержка SOAP 1.2

Для загрузки вам не нужно регистрироваться. Просто нажмите «отправить» в самом низу.

Примеры можно найти в загруженном архиве, например:

LOG_DIR = '/tmp/'
LOG_LEVEL = 4
WSFC_HOME = '/opt/wso2/wsf_c'
END_POINT = 'http://localhost:9090/axis2/services/echo/echoString'

if __name__ == '__main__':
    message = """
    <ns1:echoString xmlns:ns1="http://ws.apache.org/axis2/services/echo">
        <text>Hello World!</text>
    </ns1:echoString>
    """
    try:
        client = wso2.wsf.WSClient({
            'to':END_POINT,
            'WSF_LOG_DIR':LOG_DIR,
            'WSF_LOG_LEVEL':LOG_LEVEL,
            'WSFC_HOME':WSFC_HOME,
            })

        print 'Sending: ' + message

        response = client.request(message)

        if response is not None:
            print 'Respose: ' + response + '\n'
        else:
            print 'Error occurred!'
    except wso2.wsf.WSFault, e:
        print 'Exception occurred:'
        print e

9
ответ дан 1 December 2019 в 10:18
поделиться

У меня было очень похожая проблема несколько лет назад, и я решил ее с помощью Jython.

Если не существует реализации SOAP 1.2 для Python, вас может заинтересовать Jython , который легко интегрирует вас с платформой Java. Это означает, что вы можете использовать любой из существующих SOAP 1.2 Java-классов и просто импортировать его в свою программу Jython. Ваша программа Jython - это просто ваша программа Python, но вы можете импортировать классы Java.

Сам Jython включает почти все модули в стандартный дистрибутив языка программирования Python, но убедитесь, что ваша программа не использует какую-либо специальную нестандартную библиотеку Python.

Пример: скажем, у вас установлен Jython (он бесплатный и с открытым исходным кодом), а ваша программа Python называется myprog.py, и вы хотите использовать класс Java CLASSNAME:

1) импортировать требуемый класс Java вставив import CLASSNAME в ваш myprog.py
2) запустите jython myprog.py

1
ответ дан 1 December 2019 в 10:18
поделиться

Если вы действительно хотите использовать SOAP 1.2, хотя он еще не используется в качестве стандарта, я считаю, что могу опубликовать ответ, который требует некоторой работы (все ради общего блага :)).

Я рекомендую вам использовать gSOAP:

gSOAP - простой в использовании, кроссплатформенный инструментарий для любителей C/C++ для разработки веб-сервисов на основе XML и XML парсеров. Хотя он хорошо известен как инструментарий для разработки веб-сервисов и была доказана его хорошая производительность, он также может быть использован для создания высокопроизводительных парсеров XML, сериализаторов и десериализаторов из XML схем или структур/классов языка C/C++. Мои экспериментальные результаты показывают, что парсеры XML, созданные с помощью gSOAP работают в несколько раз быстрее, чем парсеров xerces-c в режиме DOM или SAX режиме.

Хотелось бы, чтобы все было так просто. Поскольку gSOAP является библиотекой C++, вам придется обернуть ее, чтобы использовать в Python.

Одним из способов обернуть библиотеку является использование инструмента под названием SWIG (Simplified Wrapper and Interface Generator). Этот инструмент автоматически оборачивает библиотеки C/C++ для использования в языках высокого уровня, например (вы угадали) в Python.

Я также рекомендую вам прочитать этот PDF файл (со страницы 14) о реализации gSOAP с помощью C++. Это очень полезно.

Используя это решение, вы сможете использовать хорошо изученную библиотеку, SOAP 1.2 и очень хорошее соотношение производительности. Думаю, вы будете вполне довольны результатами.

5
ответ дан 1 December 2019 в 10:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: