私はTornadoを使用してREST APIを作成するためのリクエストハンドラを作成しようとしています。 しかし、私は要求を送信し、そして/またはTornadoで要求を正しくキャッチする方法を見つけるようです。投稿を送信し、RequestHandlerに手動でリクエストを取得
私のコードは次のとおりです。
class VersionHandler2(tornado.web.RequestHandler):
def post(self,*args,**kwargs):
print "post"
print kwargs
print args
response = { 'version': '3.5.1'}
x = self.get_argument('query')
self.write(kwargs)
def get(self, *args, **kwargs):
print "GET"
response = { 'GET': '3.5.1'}
self.write(response)
if __name__ == '__main__':
sx = Server(7231,[ (r"/prost/", VersionHandler2),(r"/about/", VersionHandler)])
sx.startServer()
Getメソッドは、応答を送信して機能していますが、POSTメソッドがPOSTデータを取得することができません。私はアドバンスドレストクライアントとSENSEを使ってみましたが、運が得られませんでした。私はJSONとしてデータを送信しようとしており、適切なプリフェンスとJSONとして送信しています。 7231/ のContent-Type:アプリケーション/ JSON のContent-Length:
ARCに示すように、私のリクエストボディが
localhostです39 ソースメッセージも
POST /prost/ HTTP/1.1
HOST: localhost:7231
localhost: 7231/
content-type: application/json
content-length: 39
{
"query": [
"paul"
]
}
、それはすることが可能ですGETメソッドを使用してJSONクエリを送信しますか? 私は弾性検索のようなものを構築しようとしていて、4つのCRUDメソッド - > Post、Put、Get、Deleteを使い、それぞれのメソッドにJSONデータをクエリとして送りたいと思っています。
これは正しいと思われます。しかし、なぜそれがどこに書かれてself.get_argumentを使用するのですか https://gist.github.com/cjgiridhar/3274687 そして他のいくつかの場所 –
説明するために私の答えを編集しました。 –