Tôi đang cố gắng sử dụng Tornado để khởi động máy chủ và đăng chuỗi ký tự lên đó. Tôi đã tìm thấy rất nhiều ví dụ về cách viết phương thức đăng bài trong lớp trình xử lý, nhưng không có ví dụ nào về cách viết yêu cầu bài đăng. Mã hiện tại của tôi không làm cho phương thức post thực thi, nhưng get_argument không nhận được dữ liệu - nó chỉ in mặc định "No data received" mỗi lần. Tôi đang làm gì sai?Làm thế nào để sử dụng phương pháp POST trong Tornado?
Mã của tôi trông như thế này:
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()
Được đặt chuỗi Tôi muốn gửi trong "cơ thể" tham số điều phải làm gì? Trong một số ví dụ tôi đã nhìn thấy, giống như here, có vẻ như mọi người tạo ra các thông số riêng của họ, nhưng nếu tôi cố gắng thêm một tham số mới cho yêu cầu, như
http_client.fetch("http://0.0.0.0:8888", handle_request, method='POST', headers=None, data=test)
tôi chỉ nhận được một lỗi nói "Lỗi Loại: init() có đối số từ khóa không mong muốn 'dữ liệu' "
Cảm ơn!
chính xác những gì tôi cần, cảm ơn! – user1363445