python-requests-POST-400-Fehler
Habe ich zu viele Fragen ähnlich wie mir, aber ich konnte keine Lösung finden.
Ich bin mit Anfragen, um eine POST-Anfrage. Ich habe versucht, eine Menge von Kombinationen innerhalb der Anfrage, aber nichts zurückgibt 201 ok.
Hier ist mein code:
import json
import requests
if __name__ == '__main__':
headers = {'content-type' : 'application/json'}
url = "http://myserver/ext/v3.1/test_device"
message = {"atribute_a": "value", "atribute_b": "valueb"}
params = {"priority":"normal"}
r = requests.post(url, params=params, headers=headers, data = json.dumps(message) )
print(r)
Ich habe auch versucht ohne json.dumps, aber es gibt mir auch eine 400 bad request. Ich habe auch versucht, fügen Sie den Parameter direkt in der url wie: ...?Priorität=normal, aber ohne Erfolg.
- Gibt es nicht eigentlich ein Komma zwischen Parameter und-Header der Anfragen.post?
- ja @GauravOjha natürlich. Getestet habe ich Sie mit einem Komma. einfach nur schlechte copy&past
- Haben Sie versucht, die Daten verwenden, = - Nachricht direkt anstelle von json.dumps?
- Ja @GauravOjha. Ich sagte, dass nach meinem code, aber danke für den Versuch mir zu helfen
- Dies hat wohl damit zu tun, wie Sie Ihre server verarbeitet diese Anfrage. Können Sie zeigen, welche Art von Anfrage wird erwartet, dass von Ihrem server?
- Zum Beispiel, ich bekomme 201 ok in der Befehlszeile, wenn ich ausführen: curl -vvv -X POST -H "Content-Type: application/json' -d '{"atribute_a": "Wert", "atribute_b": false}' "myserver/ext/v3.1/test_device/?Priorität=normal"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Basierend auf die Kommentare, ist der server eigentlich erwartet Daten als stringified JSON-Objekt.
Soweit die params sind besorgt, es würde wahrscheinlich helfen, wenn Sie erklärt werden als ein Tupel von Tupeln (oder ein dict von dicts)
Versuchen Sie, die folgenden -
Die einfachste Methode ist die Verwendung
json
stattdata
wie folgt: