soap-client примеры - Какие библиотеки клиентов SOAP существуют для Python и где для них имеется документация?




zeep suds (13)

Я никогда раньше не использовал SOAP и я немного нового для Python. Я делаю это, чтобы познакомиться с обеими технологиями. Я установил SOAPlib и я попытался прочитать их Client документацию, но я не очень хорошо ее понимаю. Есть ли что-то еще, что я могу изучить, что больше подходит для того, чтобы быть клиентской библиотекой SOAP для Python?

Изменить: на всякий случай это помогает, я использую Python 2.6.


Answers

Я полагаю, что soaplib не одобряет своего клиента SOAP («отправитель») в пользу пены. На данный момент soaplib сосредоточен на том, что он является агностическим сервером SOAP-сервера («приемник»). В настоящее время soaplib находится в активной разработке и обычно обсуждается в списке рассылки SOAP Python:

http://mail.python.org/mailman/listinfo/soap


У меня был хороший опыт работы с SUDS SUDS

Использовали их TestSuite в качестве документации.


Im использует SOAPpy с Python 2.5.3 в настройках производства.

Мне пришлось вручную отредактировать пару файлов в SOAPpy (что-то вроде кода заголовка не в том месте), но кроме этого он работал и продолжает делать это очень надежно.


SUDS - это способ пойти, не вопрос об этом.


Может ли это помочь: http://users.skynet.be/pascalbotte/rcx-ws-doc/python.htm#SOAPPY

Я нашел его, ища wsdl и python с рациональным существованием, что вам понадобится wsdl-описание SOAP-сервера для создания любых полезных оберток клиента ....



пена довольно хороша. Я попробовал SOAPpy, но не получил его, чтобы работать так, как мне было нужно, в то время как пена работала очень быстро.


В моем заключении мы имеем следующее:

Сторона клиента мыла:

использовать только bitbucket.org/jurko/suds (обновленный 2016), пена bitbucket.org/jurko/suds и обновляется.

ОБНОВЛЕНИЕ 06/2017: библиотека suds-jurko не обновляется и, по- видимому, оставлена ,

Я протестировал библиотеку zeep но получил ограничения по токенам, теперь просто поддерживаю UsernameToken, я сообщаю об bug чтобы создать маркер метки времени, и автор обновил код, чтобы исправить его.

Zeep начинается хорошо и имеет хорошую documentation , поэтому я недавно перенес мой код с пеной на zeep и отлично работает.

Сторона сотового сервера:

У нас есть TGWS, soaplib (pysimplesoap не проверено). Использование IMHO и помощь soaplib должны быть выбором.

С наилучшими пожеланиями,


SUDS прост в использовании, но не гарантируется повторный вход. Если вы сохраняете объект WSDL Client () в многопоточном приложении для повышения производительности, существует определенный риск. Решение этого риска, метод clone (), выдает неисправимую ошибку Python 5508, которая, кажется, печатает, но не вызывает исключения. Может быть запутанным, но он работает. Он по-прежнему является лучшим клиентом SOAP Python.


Мы выпустили новую библиотеку pysimplesoap , которая обеспечивает поддержку простого и функционального клиента / сервера. Это цели: простота использования и гибкость (не требуются классы, автогенерированный код или xml), интроспекция и генерация WSDL, стандартное соответствие WS-I, совместимость (включая Java AXIS, .NET и Jboss WS). Он входит в состав Web2Py, чтобы включить полнотекстовые решения (дополняя другие поддерживаемые протоколы, такие как XML_RPC, JSON, AMF-RPC и т. Д.).

Если кто-то изучает SOAP или хочет исследовать его, я думаю, что это хороший выбор для начала.


Я последовал советам других ответов на этот вопрос и SUDS . После использования «в гневе» я должен согласиться: SUDS очень приятно! Настоятельно рекомендуется!

Я столкнулся с проблемой вызова HTTPS-сервисов из-за прокси-сервера. На момент написания этой статьи это затрагивает все клиенты веб-сервиса Python, которые используют urllib2 , поэтому я буду документировать решение здесь.

urllib2 модуля urllib2 с помощью python 2.6.2 и ниже не приведет к подключению CONNECT к прокси для сеансов HTTPS-over-HTTP-proxy. Это приводит к длительному таймауту или, если вам повезет, ошибке, которая выглядит так:

abort: error: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

Это был issue1424152 в Python. В отчет об ошибке включены исправления, которые исправят это в Python 2.x и Python 3.x. Проблема уже исправлена .


Мы использовали SOAPpy из Python Web Services , но похоже, что ZSI (тот же источник) заменяет его.


Следующий код был быстрее для меня, чем другой код, размещенный здесь до сих пор: (Visual Studio 2013, 64-битный, 500 МБ файл с длиной строки равномерно в [0, 1000)).

const int buffer_size = 500 * 1024;  // Too large/small buffer is not good.
std::vector<char> buffer(buffer_size);
int size;
while ((size = fread(buffer.data(), sizeof(char), buffer_size, stdin)) > 0) {
    line_count += count_if(buffer.begin(), buffer.begin() + size, [](char ch) { return ch == '\n'; });
}

Это превосходит все мои попытки Python более чем в 2 раз.





python soap soap-client