我正在尝试使用Tornado启动一个服务器并向其发送一个字符串。我发现了许多关于如何在处理程序类中编写post方法的示例,但没有关于如何编写post请求的示例。我的当前代码确实导致了post方法的执行,但是get_argument并没有获得数据--它每次都只打印默认的"No data received“。我做错了什么?
我的代码如下所示:
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()
将我想要发送的字符串放入"body“参数中是正确的做法吗?在我见过的一些示例中,比如here,似乎人们创建了他们自己的参数,但是如果我尝试向请求添加一个新参数,比如
http_client.fetch("http://0.0.0.0:8888", handle_request, method='POST', headers=None, data=test)
我刚收到一个错误,说"TypeError:init() get A unexpected argument 'data'“
谢谢!
https://stackoverflow.com/questions/10367981
复制相似问题