Найти - Пользователи
Полная версия: Пример SOAP запроса на Python?
Начало » Web » Пример SOAP запроса на Python?
1
anton666
Имеются SOAP запросы такого вида:

 <?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
  <SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <NS1:GetVersion xmlns:NS1="urn:DCCIntf-IDCC">
      <user></user>			- имя пользователя
      <pass></pass>			- пароль пользователя
    </NS1:GetVersion>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Которые каким то образом необходимо отправлять на адрес вида:
http://IP:Port/wsdl

Поделитесь примером как можно реализовать такой запрос посредством Python?

Или ссылкой на какие либо материалы по данному вопросу?
anton666
Вроде разобрался, вот так реализовал:

import requests
url="IP-адрес"
#headers = {'content-type': 'application/soap+xml'}
headers = {'content-type': 'text/xml'}
body = """
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<NS1:GetVersion xmlns:NS1="urn:DCCIntf-IDCC">
<user></user>
<pass></pass>
</NS1:GetVersion>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
"""

response = requests.post(url,data=body,headers=headers)
print(response.content)

Но при запросе получаю ответ:
b'\xd0\x97\xd0\xb0\xd0\xbf\xd1\x80\xd0\xb0\xd1\x88\xd0\xb8\xd0\xb2\xd0\xb0\xd0\xb5\xd0\xbc\xd1\x8b\xd0\xb9 \xd1\x84\xd0\xb0\xd0\xb9\xd0\xbb "/" \xd0\xbd\xd0\xb5 \xd0\xbd\xd0\xb0\xd0\xb9\xd0\xb4\xd0\xb5\xd0\xbd \xd0\xbd\xd0\xb0 \xd1\x81\xd0\xb5\xd1\x80\xd0\xb2\xd0\xb5\xd1\x80\xd0\xb5.'

“b'Запрашиваемый файл ”/“ не найден на сервере.'”

Подскажите пожалуйста какой не будь заведомо рабочий сервис на который можно отправить запрос для проверки работает ли программа или нет?
anton666
Разобрался, как с помощью SoapUI, отправить запрос…
Сервер все таки ответил
Но когда отправляю запрос с помощью Питона, в ответ получаю только список методов, как будто не какого запроса не отправляется, а просто перехожу на страницу “/wsdl”. Получается что код не работает
anton666
Разобрался, тема закрыта
OlegK
anton666, пример покажешь ?
anton666
Отправил тебе в “личку”.
AKS
anton666
Имеются SOAP запросы такого вида:
Используйте библиотеку zeep.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB