Как можно было бы отправить следующий пример SOAP-запроса с использованием запросов python или другого модуля python? (Источник: https://www.w3schools.com/xml/xml_soap.asp)
POST /InStock HTTP/1.1 Host: www.example.org Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope/" soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding"> <soap:Body xmlns:m="http://www.example.org/stock"> <m:GetStockPrice> <m:StockName>IBM</m:StockName> </m:GetStockPrice> </soap:Body> </soap:Envelope>
Моя попытка
import requests url = "www.example.org/InStock" auth = ('username', 'password') request = """ <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope/" soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding"> <soap:Body xmlns:m="http://www.example.org/stock"> <m:GetStockPrice> <m:StockName>IBM</m:StockName> </m:GetStockPrice> </soap:Body> </soap:Envelope> """ encoded_request = request.encode('utf-8') headers = {"Content-Type": "application/soap+xml; charset=utf-8", "Content-Length": str(len(encoded_request))} response = requests.post(url,headers = headers,data = encoded_request)
Это правильный URL (составленный из доступной информации) и правильный способ аутентификации в SOAP? Или мне нужно передать логин и пароль в мыльном конверте?
Я использую этот ответ для справки: Отправка SOAP-запроса с использованием Python-запросов