Я пытаюсь использовать Tornado для запуска сервера и отправки строки к нему. Я нашел много примеров того, как написать метод post в классе обработчика, но нет примеров того, как писать пост-запрос. Мой текущий код вызывает метод post, но get_argument не получает данные - он просто печатает по умолчанию «No data received» каждый раз. Что я делаю не так?Как использовать метод POST в Торнадо?
Мой код выглядит следующим образом:
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()
помещает строку, я хочу, чтобы отправить в «тело» параметр правильно делать? В некоторых примерах, которые я видел, как here, кажется, что люди создают свои собственные параметры, но если я пытаюсь добавить новый параметр в запросе, как
http_client.fetch("http://0.0.0.0:8888", handle_request, method='POST', headers=None, data=test)
Я просто получаю сообщение об ошибке сказав «TypeError: init() получил неожиданное ключевое слово аргумент 'data' '
Спасибо!
именно то, что мне нужно, спасибо! – user1363445