python 使用urllib3发起post请求,携带json参数

当通过python脚本,发起http post请求,网络上大多是通过fields传递数据,然而这样,服务器收到的请求,但无法解析json数据。类似这些链接:

Python urllib3库使用指南

软件测试|Python urllib3库使用指南 

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)

你可能感兴趣的:(python,urllib3,携带json参数的post请求)