2016-06-03 14 views
0

Ich sende eine POST-Anfrage mit Urlib mit Python.Python POST Codierung und Formatierung

Ich benutzte Charles, um den POST zu sehen, der normalerweise gesendet wird, und jetzt versuche ich, dasselbe mit urllib zu senden.

Dies ist, was sollte nach charles gesendet werden:

{ "stuff_values": { "description": "Das ist die Beschreibung", "somestuff": [{ "Ding": "Hallo", "title": "i love Cookies"}]}}

Dies ist, was ich schicke:

stuff_values ​​=% 7B% 27description% 27% 3A +% 27This + ist Beschreibung% 27% + 2C +% 27Somestuff% 27% 3A +% 5B% 7B% 27Thing% 27% 3A +% 27Hello% 27% 2C +% 27Title% 27% 3A +% 27i + Liebe + Kekse% 27% 7D% 5D% 7D

Dieser Teil meines Codes ist:

values = { 
"stuff_values":{ 
"description":"this is description", 
"somestuff" : [{"thing":"hello", 
"title":"i love cookies"}]} 
} 

data = urllib.parse.urlencode(values) 
data = data.encode('ascii') 
req = urllib.request.Request(url, data, headers = headers) 

Könnte mir jemand helfen, dies herauszufinden? Ich schätze, ich habe ein Problem mit dem Kodierungsteil, aber auch mit dem Rest formatieren richtig.

Vielen Dank für Ihre Zeit!

+0

Ich bin mir nicht sicher, was Sie fragen. Sie codieren Ihre Daten, und das ist das Ergebnis davon. Was ist falsch? –

+0

Gut. Ich habe es nur verschlüsselt, weil die Dokumentation sagt, ich sollte;). Ich habe ein paar andere Codierungen ausprobiert, aber keine scheint mir das Ergebnis zu liefern, das ich anstrebe (was gesendet werden sollte). Ich frage, ob mir jemand in die richtige Richtung zeigen kann. – raecer

+0

Die richtige Richtung für was? Was willst du? Ihr erstes Beispiel ist überhaupt nicht codiert. –

Antwort

1

Versuchen:

data = str(values) 

statt. urlencode konvertiert bestimmte Zeichen in% xx-Escapes.