![](https://www.04ip.com/zb_users/upload/2023/09/20230925110604169561116449641.jpg)
正文
Python Requests post方法中data与json参数问题
![](/static/style/weixin/images/xcx_logo.png)
【扫一扫了解最新限行尾号】
复制小程序
1.data参数
你想要发送一些编码为表单形式的数据——非常像一个 HTML 表单。要实现这个,只需简单地传递一个字典给 data 参数。你的数据字典在发出请求时会自动编码为表单形式, header默认Content-Type: application/x-www-form-urlencoded ,
发送过来的抓包到的数据格式为:'username=amy&password=123'
如果你传递一个
string
而不是一个
dict
,那么数据会被直接发布出去,不会被编码为表单形式
例如传'{"username": "amy", "password": "123"}',直接发出去,抓包的内容也是'{"username": "amy", "password": "123"}'
2.json参数
还可以使用
json
参数直接传递,然后它就会被自动编码,
header默认'Content-Type': 'application/json'
json发送过来的数据格式为:{"username": "amy", "password": "123"}
3.实际场景中如何使用
1)对页面接口抓包,如果Content-Type:application/json,则限制接受json格式,requests中可用json方法,
或者使用data方法,headers加'Content-Type': 'application/json',postdata传string格式,不会自动编码格式
2)对页面接口抓包,Content-Type:application/x-www-form-urlencoded; charset=UTF-8,则可使用data方法