Могу ли я использовать urllib для отправки запроса SOAP? - PullRequest
3 голосов
/ 09 января 2009

У меня есть 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 не является обязательным требованием.

Ответы [ 2 ]

8 голосов
/ 09 января 2009

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

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)
3 голосов
/ 09 января 2009

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...