python - Tornado application/json support -



python - Tornado application/json support -

does tornado back upwards content-type "application/json"?

according phone call stack (assuming stream_request_body = false), method called parse request body parse_body_arguments (httputil.py 662), accepts "application/x-www-form-urlencoded" , "multipart/form-data"

the solution pretty trivial. have json.loads() received body , trust it's proper json-encoded dictionary (if want, grab exception , provide meaningful feedback). can't expect application/json in content-type; during post that'll application/x-www-form-urlencoded.

here sample server:

import json import tornado.httpserver import tornado.ioloop import tornado.web class myhandler(tornado.web.requesthandler): def post(self): info = json.loads(self.request.body.decode('utf-8')) print('got json data:', data) self.write({ 'got' : 'your data' }) if __name__ == '__main__': app = tornado.web.application([ tornado.web.url(r'/', myhandler) ]) http_server = tornado.httpserver.httpserver(app) http_server.listen(8888) print('starting server on port 8888') tornado.ioloop.ioloop.instance().start()

you can test using e.g. curl:

curl -d '{"hello": "world"}' http://localhost:8888/

python json tornado

Comments

Popular posts from this blog

php - Edges appear in image after resizing -

ios8 - iOS custom keyboard - preserve state between appearances -

Delphi change the assembly code of a running process -