Могу ли я использовать urllib для отправки запроса SOAP?

У меня есть запрос SOAP, который, как известно, работает с использованием такого инструмента, как, скажем, SoapUI, но я пытаюсь заставить его работать с помощью urllib.

Это то, что я пробовал до сих пор, и это не сработало:

import urllib
f = "".join(open("ws_request_that_works_in_soapui", "r").readlines())
urllib.urlopen('http://url.com/to/Router?wsdl', f)

Мне не удалось найти спецификацию того, как документ должен быть отправлен на сервер SOAP.

urllib не является обязательным требованием.

Чем не работает? Не могли бы вы опубликовать трассировку стека

James Brady 09.01.2009 21:37

Использует ли urllib ваше ограничение? вы обязательно должны это использовать?

Sergey Golovchenko 09.01.2009 22:13
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
2
9 932
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ну я ответил на свой вопрос

import httplib

f = "".join(open('ws_request', 'r'))

webservice = httplib.HTTP('localhost', 8083)
webservice.putrequest("POST", "Router?wsdl")
webservice.putheader("User-Agent", "Python post")
webservice.putheader("Content-length", "%d" % len(f))
webservice.putheader("SOAPAction", "\"\"")
webservice.endheaders()
webservice.send(f)

Вероятно, раньше вас сбивали с толку заголовки SOAPAction и Content-length. Обратите внимание, что добавление заголовков очень просто с использованием urllib2 - IMHO лучше использовать, чем httplib.

James Brady 10.01.2009 01:51
Ответ принят как подходящий

Короткий ответ: да, можно.

Длинный ответ:

Взгляните на этот пример, он не использует urllib, но даст вам представление о том, как подготовить запрос SOAP.

Что касается urllib, я предлагаю использовать urllib2, и да, вы можете отправить запрос SOAP с его помощью, выполните те же шаги для подготовки запроса, что и в предыдущем примере.

обе ссылки попадают в 404!

Amir Mohsen 24.07.2017 08:21

Первая ссылка @AmirMohsen работает у меня нормально, и я обновил вторую, так что теперь она тоже работает

Sergey Golovchenko 25.07.2017 07:02

Другие вопросы по теме