Ich habe Probleme beim Lesen einer POST-Anfrage mit bottle.py
.Lesen POST Körper mit bottle.py
Die gesendete Anforderung enthält Text in ihrem Körper. Sie können sehen, wie es hier in Zeile 29 gemacht wird: https://github.com/kinetica/tries-on.js/blob/master/lib/game.js.
Sie können auch sehen, wie es auf einem node
-basierten Client hier in Zeile 4 gelesen wird: https://github.com/kinetica/tries-on.js/blob/master/masterClient.js.
Allerdings konnte ich dieses Verhalten auf meinem bottle.py
-basierten Client nicht nachahmen. Die docs sagen, dass ich den rohen Körper mit einem Datei-ähnlichen Objekt lesen kann, aber ich kann die Daten weder mit einer For-Schleife auf request.body
, noch request.body
readlines
Methode erhalten.
Ich handle die Anfrage in einer Funktion mit @route('/', method='POST')
dekoriert, und Anfragen ankommen korrekt.
Vielen Dank im Voraus.
EDIT:
Der komplette Skript ist:
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)
Ich dachte, es braucht das 'StringIO' Objekt zurückzuspulen, aber es ist nicht nötig. Können Sie die Python-Funktionen zu Ihrer Frage hinzufügen? –
Natürlich. Ich habe die Antwort aktualisiert. Danke, @ A.Rodas –
Woher wissen Sie, dass Anfragen korrekt ankommen? Was ist die Ausgabe und/oder Rückverfolgung für den Code, den Sie hier gezeigt haben? –