Frage

Ich habe Probleme beim Senden eines Put über das Anforderungsmodul.Ich konnte einen Get erfolgreich durchführen und habe mit einem Advanced Rest Client für Chrome überprüft, ob meine Nutzdaten korrekt sind.Es wird jedoch eine allgemeine Fehlermeldung angezeigt, dass ich eine fehlerhafte Anfrage sende.Ich bin neu in Webdienstanrufen und bin mir nicht sicher, ob das, was ich tue, völlig falsch ist, aber ich versuche Folgendes:

import requests
payload = {'payload': '<request>some request xml</request>'}
headers = {'content-type': 'application/xml'}

r = requests.put('https://the.url', data=payload, auth=HTTPBasicAuth('user', 'password'), headers=headers)

Ich weiß zu 100%, dass XML, URL und Anmeldeinformationen korrekt sind. Warum funktioniert das oben genannte nicht?Das einzige, woran ich denken kann, ist, dass der Schlüssel für die Nutzlast etwas Bestimmtes sein muss, aber ich bin mir nicht sicher, ob das richtig ist oder wie ich herausfinden soll, was es sein soll ...

Die Antwort lautet 'HTTP Status 400 - Bad Request'

War es hilfreich?

Lösung

Nachdem Sie sich eingehender mit dem Schnellstart befasst habenAnleitung Ich habe diese Informationen gefunden:

Sie möchten häufig Daten senden, die nicht formularcodiert sind.Wenn Sie anstelle eines Diktats eine Zeichenfolge übergeben, werden diese Daten direkt veröffentlicht.

Ich habe das ursprünglich versucht, aber anscheinend hatte ich einen Tippfehler, weil der Fehler, den ich bekam, darauf hinwies, dass ich ein Diktat abgeben musste.

Unabhängig davon hat die Übergabe des direkten XML anstelle eines Wörterbuchs das Problem behoben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top