2017-02-02 363 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)