Estoy tratando de usar Tornado para iniciar un servidor y publicar una cadena en él. He encontrado muchos ejemplos de cómo escribir el método de publicación en la clase de controlador, pero no hay ejemplos de cómo escribir la solicitud de publicación. Mi código actual hace que se ejecute el método de publicación, pero get_argument no obtiene los datos, solo imprime el valor predeterminado "Sin datos recibidos" cada vez. ¿Qué estoy haciendo mal?¿Cómo usar el método POST en Tornado?
Mi código es el siguiente:
class MainHandler(tornado.web.RequestHandler):
def post(self):
data = self.get_argument('body', 'No data received')
self.write(data)
application = tornado.web.Application([
(r"/", MainHandler),
])
if __name__ == "__main__":
def handle_request(response):
if response.error:
print "Error:", response.error
else:
print response.body
tornado.ioloop.IOLoop.instance().stop()
application.listen(8888)
test = "test data"
http_client = tornado.httpclient.AsyncHTTPClient()
http_client.fetch("http://0.0.0.0:8888", handle_request, method='POST', headers=None, body=test)
tornado.ioloop.IOLoop.instance().start()
está poniendo la cadena Quiero enviar en el "cuerpo" Parameter lo que hay que hacer? En algunos ejemplos que he visto, como here, parece que la gente crear sus propios parámetros, pero si intento agregar un nuevo parámetro a la solicitud, al igual que
http_client.fetch("http://0.0.0.0:8888", handle_request, method='POST', headers=None, data=test)
apenas consigo un error que dice "TypeError: init() obtuvo una inesperada palabra clave argumento 'datos' "
¡Gracias!
exactamente lo que necesitaba, gracias! – user1363445