Ho problemi a leggere una richiesta POST con bottle.py
.Lettura corpo POST con bottle.py
La richiesta inviata ha un testo nel suo corpo. Puoi vedere come è fatto qui sulla linea 29: https://github.com/kinetica/tries-on.js/blob/master/lib/game.js.
È anche possibile vedere come viene letto su un client basato su node
qui sulla riga 4: https://github.com/kinetica/tries-on.js/blob/master/masterClient.js.
Tuttavia, non sono stato in grado di simulare questo comportamento sul mio client basato su bottle.py
. Il docs dice che posso leggere il corpo non elaborato con un oggetto simile a un file, ma non riesco a ottenere i dati né utilizzando un ciclo for su request.body
, né usando il metodo readlines
request.body
.
Sto gestendo la richiesta in una funzione decorata con @route('/', method='POST')
e le richieste arrivano correttamente.
Grazie in anticipo.
EDIT:
Lo script completo è:
from bottle import route, run, request
@route('/', method='POST')
def index():
for l in request.body:
print l
print request.body.readlines()
run(host='localhost', port=8080, debug=True)
ho pensato che era necessario per riavvolgere l'oggetto 'StringIO', ma non è necessario. Potresti aggiungere le funzioni Python alla tua domanda? –
Ovviamente. Ho aggiornato la risposta. Grazie, @ A.Rodas –
Come sai che le richieste arrivano correttamente? Qual è l'output e/o traceback per il codice che hai mostrato qui? –