Próbuję użyć Tornado, aby uruchomić serwer i napisać do niego ciąg znaków. Znalazłem wiele przykładów, jak napisać metodę post w klasie obsługi, ale nie ma przykładów, jak napisać żądanie wpisu. Mój obecny kod powoduje, że metoda postu jest wykonywana, ale get_argument nie pobiera danych - po prostu wypisuje domyślne "No data received" za każdym razem. Co ja robię źle?Jak korzystać z metody POST w Tornado?
Mój kod wygląda następująco:
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()
jest oddanie ciąg Chcę wysłać w „ciele” Parametr słuszne? W niektórych przykładach widziałem, jak here, wydaje się ludzie tworzą swoje własne parametry, ale gdy próbuję dodać nowy parametr do wniosku, jak
http_client.fetch("http://0.0.0.0:8888", handle_request, method='POST', headers=None, data=test)
ja po prostu błąd, mówiąc: „TypeError: init() uzyskał nieoczekiwany argument słowa kluczowego "dane" "
Dzięki!
dokładnie to, co potrzebne, dzięki! – user1363445