2017-02-02 361 views
0

請求負載: (這些空間被假設是存在)蟒蛇請求POST請求

{input01: {Input: "adress", adress: "g", FirstName: "", LastName: ""}, Locale: "en"} 
    Locale:"en" 
input01:{Input: "adress", adress: "g", FirstName: "", LastName: ""} 
    FirstName:"" 
    adress:"g" 
    Input:"adress" 
    LastName:" 

這是我嘗試(返回400)。

data = { 
     "input01": { 
     "Input": "adress", 
     "adress": "test", 
     "FirstName": "", 
     "LastName": "" 
     }, 
     "Locale": "en" 
    } 

r = requests.post(url, data=data) 
print(str(r.text)) 
+0

一般400指錯誤的請求即你缺少一些數據是被張貼到的URL。檢查網址和要發佈的數據。 – MicroPyramid

+0

您無法發佈嵌套字典。 input01的'value'將被轉換爲包含Python字典語法的字符串。你的意思是發佈JSON嗎?然後使用'requests.post(url,json = data)'。 –

+0

與答案無關,但是「地址」正在困擾着我。我禁不住注意到這是錯誤的,這使我不能真正閱讀那裏的內容。使用''地址''將使你的代碼更具可讀性。 – Baldrickk

回答

2

您沒有發佈JSON。當您將字典傳遞給data參數時,它將被編碼爲application/x-www-form-urlencoded請求,而不是HTML表單的默認編碼。

要發佈JSON,使用json參數:

r = requests.post(url, json=data)