14

私はelasticsearchを使用しており、RESTful APIは検索条件のGETリクエストでボディの読み取りをサポートしています。

私は現在やっています

response = urllib.request.urlopen(url, data).read().decode("utf-8")

が存在する場合dataは POST を発行し、存在しない場合は GET を発行します。データを含めているにもかかわらず、GET を強制するにはどうすればよいですか (データは POST に従ってリクエスト本文にある必要があります)。

注: Url でプロパティを使用できることは承知してsourceいますが、実行しているクエリは複雑であり、クエリ定義は非常に冗長であるため、URL が非常に長くなります (一部の古いブラウザーやプロキシに干渉する可能性があります)。

4

1 に答える 1

23

urllib を使用してこれを行う良い方法を知りません。ただし、requestsは、 requests.request * 関数を使用することで、それを自明にします (実際、任意の動詞とリクエスト コンテンツで自明にします) 。

requests.request(method='get', url='localhost/test', data='some data')

小さなテスト Web サーバーを構築すると、データが実際に要求の本文で送信され、サーバーによって認識されるメソッドが実際に GET であることが示されます。

requests.api.requests*実際の関数定義が存在する場所であるため、コードにリンクしていることに注意してください。を使用して呼び出す必要がありますrequests.request(...)

于 2013-03-20T18:06:35.280 に答える