Tornado analizar las solicitudes

votos
0

con un tornado me gustaría ser capaz de analizar a fondo las peticiones web.

Esta es la solicitud

curl -vk _POST http://127.0.0.1:3000 -H Content-Type: application/x-www-form-urlencoded --data testObject=20

con ese código

import time, threading
import tornado.ioloop
import tornado.web
import sys

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        print('get message:')
        print(str(self.request.body))
        self.write(self.request.body)

    def post(self):
        print('post message')
        print(str(self.request.body))
        self.write(self.request.body)

def make_app():
    return tornado.web.Application([
        (r/, MainHandler),
    ])

def startTornado():
    app = make_app()
    app.listen(my_port)
    tornado.ioloop.IOLoop.instance().start()

def stopTornado():
    tornado.ioloop.IOLoop.instance().stop()

if __name__ == __main__:
    my_port = 3000
    print('app is listening on port',str(my_port))
    t = threading.Thread(target=startTornado)
    t.start()
    while True:
        try:
            time.sleep(0.01)
        # signal : CTRL + BREAK on windows or CTRL + C on linux
        except KeyboardInterrupt:
            stopTornado()
            t.join()
            sys.exit()

Me sale solo

b'testObject=20'

Con el fin de poder reaccionar correctamente a las codificaciones, tipo de contenido, datos, etc. cómo uso de tornado para eso? ¿hay algo más en Python que pueda usar?

Publicado el 19/12/2018 a las 14:07
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
1

En tornado request.bodyes siempre el cuerpo de datos en bruto. Datos Form-codificado se analiza en las argumentsestructuras y por lo general acceder con métodos como self.get_argument('testObject').

Respondida el 19/12/2018 a las 14:13
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more