2017-07-07 52 views
0

我試圖將我的生產就緒代碼部署到Heroku中進行測試。不幸的是,它沒有獲取JSON數據,所以我們轉換成了x-www-form-urlencoded。如何在python中的POST請求中發送urlencoded參數

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?

+2

只需在一個字典來'data'傳遞,默認情況下請求將其發送的X WWW的形式,進行了urlencoded的照顧。 –

回答

1

你不需要明確地編碼它,只需傳遞一個字典。

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

documentation:

通常情況下,你要發送某種形式的編碼數據 - 很像一個HTML 形式。要做到這一點,只需將字典傳遞給數據參數即可。你 字典數據將自動錶單編碼時請求 由