问题简答
带参数data
发送请求时,Python是以发送表单的形式发送请求,我们在浏览器的请求头中可以看到Content-Type: application/x-www-form-urlencoded
的字样,此时待发送的字典会被编码成`"a=1"的格式。
带参数json
发送请求时,Python是发送json格式的字符串到服务器,可以在浏览器的请求头中看到Content-Type: application/json
的字样,此时待发送的字典会被编码成 {"a": 1}
的格式。
应用策略
其实我们使用参数data
也可以发送json
格式的字符串,就是用json.dumps(dict)
包一下我们的字典数据dict
就可以了。某种程度上我们可以把json
参数理解为一个“语法糖”,就是为了方便我们发送json
格式数据而设计的。毕竟在使用data
发送json
参数时,需要导入json
模块,然后再把数据包一下,打的字会变得更多嘛。
应用策略就是默认使用data
发送字典数据,报错了就换用json
再发一遍,或者检查一下浏览器头里面的Content-Type
字段。