私はTornadoを使ってサーバーを起動し、それに文字列を投稿しようとしています。私はハンドラクラスでpostメソッドを書く方法の例をたくさん見つけましたが、投稿要求を書く方法の例はありません。現在のコードではpostメソッドが実行されますが、get_argumentはデータを取得しません。毎回、デフォルトの "No data received"が出力されます。私は間違って何をしていますか?Tornadoで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