Python Requests post方法中data与json参数问题

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方法

上一篇:Python requests.post方法中data与json参数区别


下一篇:iOS移动硬盘实现原理