requests 发送一个post 请求
查看requests.post() 方法源码
post请求方法:post(url,data=None,json=None,**kwargs)
python的requests的post请求中,有一个json参数。源码中对于此参数的说明以下:
一个json序列化的python对象。python中字典表达与json很类似。
在post请求中,对传进来的json值,会作以下处理:
一、会使用json模块中的dumps方法转成json数据。
二、会增长消息头中的content_type为application/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\”}
“{\r\n “grant_type”: “password”,\r\n “username”: “admin”,\r\n “password”: “1234qwer”,\r\n “deviceId”: “3843282aa187ea51a40ca5a314c8c417”\r\n}”