1.请求头里的坑
Content-Type和x-nfzg-token必须放,不然会报错,这个坑我花了很长时间才发现的;POST请求的的cookie也是放在请求头内部,不用单独存放。之前网上找的时候有些人讲GET请求把cookie放在请求头内部,POST请求需要把cookie单独存放在请求头外部,这就是一个坑。
headers = {
'Content-Type': 'application/json;charset=UTF-8',
'referer': '****',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36',
'cookie': '***',
'x-nfzg-token': '*****'
}
2.注意POST的data数据类型
在请求里可以照到服务器接受的数据类型。我的原始data是字典,需要转为JSON
data = {"fwbh": ["c295fc74-f48c-4c24-b76e-0751ff48a89d"], "info": "通过", "type": "jz_ggfw"}
data = json.dumps(data)
3.发送网络请求的坑
此处不需要单独的把cookie传进去,cookie已经在请求头内部了。直接把data传进去就完事。
# 发送网络请求
response = requests.post(url=url, headers=headers, data=data)
以下是完整的代码
import requests
import json
url = 'http://****/nclzgdjf/api/v2/stock/audit/pass'
headers = {
'Content-Type': 'application/json;charset=UTF-8',
'referer': 'http://***/mp/',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36',
'cookie': '***',
'x-nfzg-token': '***'
}
# 定义字典类型的表单参数
data = {"fwbh": ["c295fc74-f48c-4c24-b76e-0751ff48a89d"], "info": "通过", "type": "jz_ggfw"}
data = json.dumps(data)
# 发送网络请求
response = requests.post(url=url, headers=headers, data=data)
print('响应状态码:', response.status_code)
print('响应结果:', response.text)