Wenn Anfrage Erstellen Sie sollten:
- bieten
Content-Type
Header
- Daten im Format bereitzustellen, das
Content-Type
Spiele Header
- sicher Anwendung machen unterstützt das Format
Beide curl
und python
Beispiele, die Sie gesendet haben, senden eine Anfrage mit Content-Type: application/x-www-form-urlencoded
, dem Standard. Der Unterschied ist curl
übergibt Zeichenfolge und python
übergibt ein Array.
Vergleichen wir curl
und requests
und was wirklich geschrieben wird:
Locken
$ curl localhost -X POST -d "{\"action\": \"deckNames\", \"version\": 5}"
Headers:
Host: localhost
User-Agent: curl/7.52.1
Accept: */*
Content-Length: 37
Content-Type: application/x-www-form-urlencoded
Posted Daten:
[
'{"action": "deckNames", "version": 5}'
]
Python
import requests
r = requests.post("http://127.0.0.1", data={'action': 'guiAddCards', 'version': 5})
print(r.text)
Headers:
Host: 127.0.0.1
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: python-requests/2.10.0
Content-Length: 28
Content-Type: application/x-www-form-urlencoded
Posted Daten:
[
'action' -> 'guiAddCards',
'version' -> '5',
]
Wie Sie, fehlerhafte Post-Datenformat bricht Ihrer App sehen kann.
sicher sein, das JSON-Daten geschrieben ordnungsgemäß durch Anwendung gelesen werden, dass Anfragen wie machen sollte:
Locken
$ curl localhost:8765 -H 'Content-Type: application/json' -d '{"action": "deckNames", "version": 5}'
Python
import requests
r = requests.post("http://127.0.0.1:8765", json={'action': 'guiAddCards', 'version': 5})
print(r.text)
Was bedeutet "kein Glück"? Vermutlich bekommen Sie einen Fehler. Was gibt der Server zurück? –
Mögliches Duplikat von [JSON mit Python-Anfragen senden] (https://stackoverflow.com/questions/9733638/post-json-using-python-requests) –
Können Sie detaillierter darüber sein, welchen genauen Fehler oder welches Problem Sie haben? Sie sollten in der Lage sein, viele Beispiele von Python zu finden, die eine Post-Anfrage machen. – csmckelvey