Invio una richiesta POST con corpo JSON a un server Django (abbastanza standard). Sul server ho bisogno di decodificarlo usando json.loads()
.Ottieni corpo della richiesta come stringa in Django
Il problema è come ottenere il corpo della richiesta in un formato stringa?
Ho il seguente codice attualmente:
body_data = {}
if request.META.get('CONTENT_TYPE', '').lower() == 'application/json' and len(request.body) > 0:
try:
body_data = json.loads(request.body)
except Exception as e:
return HttpResponseBadRequest(json.dumps({'error': 'Invalid request: {0}'.format(str(e))}), content_type="application/json")
Tuttavia, questo dà un errore the JSON object must be str, not 'bytes'
.
Come si recupera il corpo della richiesta come stringa, con la codifica corretta applicata?
Does request.read() 'esegue il lavoro? – dhke
@ dhke, no, dà lo stesso, che mi ha sorpreso in realtà. 'request.body.decode ('utf-8')' sembra funzionare, ma non sono sicuro se questo è il modo migliore per farlo? – zelanix