requests.post请求传参问题

def post(url, data=None, json=None, **kwargs):
post请求中data&json的传参问题
用data参数提交数据时,request.body的内容则为a=1&b=2的这种形式;
用json参数提交数据时,request.body的内容则为'{"a": 1, "b": 2}
'的这种形式

python在post请求中,对传进来的json值,会做如下处理:

  1、会使用json模块中的dumps方法转成json数据。

  2、会增加消息头中的content_type为application/json

所以,json参数不需要提前使用json模块的方法转成json字符串。

json后直接传入字典就可以了!!!

注意:

如果在传参时,提前转换成json字符串:requests.request("post",url,json=json.dumps(a),headers=headers)

在post请求中,还会再使用jsons模块转成json数据。那么此时的请求数据会在最外多了一层引号。

请求数据结果为:"{\\"pwd\\": \\"1234567890\\", \\"mobilephone\\": \\"18611000001\\"}"

而实际上我们要发送的数据是没有外层引号的,即:{\\"pwd\\": \\"1234567890\\", \\"mobilephone\\": \\"18611000001\\"}

posted @ 2022-02-12 16:58  wind_y  阅读(488)  评论(0编辑  收藏  举报