2017-10-06 18 views
0

私はPythonでPOSTメソッドを使ってサーバに問い合わせようとしています。PythonでHTTP POSTと302のリダイレクト

import requests 

url = "https://www.test.com/service" 
data = {"param": "value"} 

req = requests.post(url, data).content 

reqを見ると、私が投稿したデータは明らかに考慮されていません。私はcURLを持つヘッダをチェックした場合

curl -ik -X POST -d "param=value" https://www.test.com/service 

を私はHTTP 302以下の取得:私はよく理解している場合

HTTP/1.1 302 Déplacé Temporairement 
Date: Fri, 06 Oct 2017 16:42:36 GMT 
Server: Apache-Coyote/1.1 
X-Content-Type-Options: nosniff 
X-XSS-Protection: 1; mode=block 
Cache-Control: no-cache, no-store, max-age=0, must-revalidate 
Pragma: no-cache 
Expires: 0 
Location: https://www.test.com/redirect 
Content-Language: fr-FR 
Content-Length: 0 
Via: 1.1 www.test.com 

はだから、私はhttps://www.test.com/redirectあるLocationにリダイレクトしています。このアドレスはGETメソッドでのみ照会できます。 POSTで試してみると、HTTP 500というエラーが表示されます。私はこのように理解して何

は私がPOSTパラメータで要求をすると私は別のページにリダイレクトされていますし、要求がLocationを照会、GETなることです。私は私のパラメータに何が起こるのか理解していません。私のブラウザでは、送信されたパラメータを考慮した回答が得られます。手でクエリを実行すると、空のバージョンhttps://www.test.com/redirectです。

私は何が間違っていますか?要求に対する私の理解はかなり浅いので、私は明らかな何かが不足していると確信しています。

答えて

0

requests.postを使用する正しい構文。 requests

import requests 

url = "https://www.test.com/service" 
data = {"param":"value"} 

req = requests.post(url, data).content 
+0

私は私の質問を編集しましたが、残念なことに誤植でした。私は正しい構文で動作しません、私はこの問題があります。もし私が[私の経験](https://stackoverflow.com/questions/46422307/post-method-in-python-errno-104)からこの間違いをしてしまったら、それはもう104エラーを引き起こすはずです! – MBR

関連する問題