400 плохих запросов от веб-запроса с SOAP в python - PullRequest
0 голосов
/ 21 февраля 2020

[введите описание изображения здесь] [1] Я всегда получаю ошибку 400 Bad Request при попытке этого кода в python. Кто-нибудь может мне помочь, пожалуйста?

Я читал что-то об изменении пространства имен или что-то, но я понятия не имею, что это значит, поскольку я не знаю о пространствах имен в python.

На картинке внизу есть это xml / текст, который мне дал сайт для получения своих данных.

У меня была такая же проблема при использовании c#.

Для тестирования: вам не нужно правильное имя компании / имя пользователя / пароль, поскольку он выдает 400 ошибок неверного запроса

import requests
company = '''"<Company><CompanyName>comanyname</CompanyName><UserName>username</UserName><Password>password</Password></Company>"'''
date = '"02-02-2020"'
request = """<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><GetPersonIdInfos xmlns="http://tempuri.org/"><companyIdentity>""" + company + """</companyIdentity><date>""" + date + """</date></GetPersonIdInfos></soap:Body></soap:Envelope>"""

encoded_request = request.encode('utf-8')

headers = {
    "Host": "soap.track-and-trace.nl",
    "Content-Type": "text/xml; charset=utf-8",
    "Content-Length": str(len(encoded_request)),
    "SOAPAction": '"' + "http://tempuri.org/GetPersonIdInfos" + '"'
}
response = requests.post(
    url="http://soap.track-and-trace.nl/Service1.asmx",
    headers=headers,
    data=encoded_request,
    verify=False)


  [1]: https://i.stack.imgur.com/4Dake.png
...