ich diesen Code verwenden, um einige Daten zu einem Django betriebene Website zu veröffentlichen:Django macht eine QueryDict von JSON-Daten
url = "http://example.com:8080/api/v1/data/"
request = {"info": "", "data": [{"extra": 0, "amount": 100, "id": "10000000016"}, {"extra": 0, "amount": 100, "id": "10000000002"}]}
opener = urllib2.build_opener()
opener.addheaders = [("Authorization", "Token "+self.token),
("Accept", "application/json"),
("Content-Type", "application/json; charset=UTF-8")]
opener.open(url, json.dumps(request))
Doch wenn ich lese, dass Daten in Django, es in ein QueryDict
analysiert hat:
Raw data received: <QueryDict: {u'{"info": "", ... 0002"}]}': [u'']}>
die Rohdaten werden direkt von request.data
genommen in Bezug auf die Funktion gegeben, die von der urls.py
Routing bezeichnet wird.
Wenn Sie die gleiche Art von Daten von einer Android-App POST, funktioniert es gut. Die Rohdaten sind eine Zeichenfolge und können von JSON aus korrekt analysiert werden.
'POST'ed Rohdaten sollten in' request.body' ([Django docs] (https://docs.djangoproject.com/ja/1.9/ref/request-response/#django.http.HttpRequest) sein. Karosserie)). – C14L
Was ist der Inhaltstyp, der auf der Django-Seite angezeigt wird? Django sollte nur die Abfrage dict füllen, wenn die Eingabe eine der folgenden ist: multipart/form-data oder application/x-form-urlencoded. 'urllib2' stellt automatisch' 'application/x-www.form-urlencoded' 'ein und ich bin mir nicht sicher, wie dies mit der Einstellung' addheaders' auf dem Opener zusammenwirkt. – dhke
@dhke Wie kann ich den Inhaltstyp herausfinden, der auf der Django-Seite angezeigt wird? –