当通过python脚本,发起http post请求,网络上大多是通过fields传递数据,然而这样,服务器收到的请求,但无法解析json数据。类似这些链接:
python发起网络请求模块【requests、selenium、urllib、urllib3】
里面大多采用fields传递数据,但这样,服务器无法解析,特别是解析json的接口。
所以field应该有做它用,但不是传递json数据的。
import urllib3
http = urllib3.PoolManager()
data = {
'name': 'theshy',
'team': 'wbg'
}
url = "https://www.baidu.com"
response = http.request('POST', url, fields=data)
print(response.data)
在request方法中,通过json字段传递数据,而且不需要手动json.dumps,这样请求,服务器是能解析json数据的。
import urllib3
http = urllib3.PoolManager()
back = {'result': True, 'perModelId': 98, 'message': "成功"}
http.request(
'POST',
"192.168.100.127/model/download",
headers={'Content-Type':'application/json'},
json=back)