2017-07-07 15 views
0

テストするために生産準備完了コードをHerokuにデプロイしようとしています。残念ながら、JSONデータは取得していないので、x-www-form-urlencodedに変換しました。POSTリクエストでurlencodedパラメータをPythonで送信する方法

params = urllib.parse.quote_plus(json.dumps({ 
    'grant_type': 'X', 
    'username': 'Y', 
    'password': 'Z' 
})) 
r = requests.post(URL, data=params) 
print(params) 

私はdata=paramsが適切なフォーマットではありません推測するように、それは、この行でエラーを示しています。

urlencodedパラメータをAPIにPOSTする方法はありますか?

+2

は単にデフォルトで要求がx-www-form-urlencodedでとして送信するの世話をする、data' 'に辞書を渡した場合、データのあなたの 辞書が自動的にフォームでエンコードされます。 –

答えて

1

明示的にエンコードする必要はありません。単にdictを渡すだけです。多くのHTML フォームのように - documentation:

から

>>> r = requests.post(URL, data = {'key':'value'}) 

は一般的に、あなたはいくつかの形式でエンコードされたデータを送信したいです。これを行うには、単にdata引数に辞書を渡します。要求 が

関連する問題