在请求中,header
中有一项属性为数据传输类型:Content-Type
。在我们发送请求的时候,针对不同的传输数据类型,我们需要传入不同的参数
当请求数据格式为表单的时候,我们的请求数据为字典,不能进行转换,传输的格式转换为键值对并按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码。
Content-Type: application/json
表明我们要传入的参数是序列化后的 JSON 字符串。然而在python中,我们的参数往往写成以下格式:
json_data = {
'attitude': [],
'Range': '',
'Type': [],
'VideoType': [],
'Channel': [],
'Column': [],
}
data就是我们要传的参数,python中是以字典的形式存在的,数据类型就是字典,但是传入的数据要求是json格式的字符串,因此传入的时候需要转换。
将我们传入的json_data参数通过json.dumps转换后就变成了json格式的字符串,如下:
import json
json_data = {
'attitude': [],
'Range': '',
'Type': [],
'VideoType': [],
'Channel': [],
'Column': [],
}
data_json=json.dumps(data)
data=json.dumps(data_json)
re = requests.post(url=url, data=data,headers={
"Content-Type":"application/json;charset=UTF-8"
})
json.dumps
转换处理时,用post函数的json参数在data数据不做处理的时候,post请求头必须用json参数
import requests,json
url = 'http://172.243.25.8'
json_data = {
'attitude': [],
'Range': '',
'Type': [],
'VideoType': [],
'Channel': [],
'Column': [],
}
re = requests.post(url=url, json=data)