You need to enable JavaScript to run this app. Python requests发送POST请求响应与Chrome网络面板不一致如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Python requests发送POST请求响应与Chrome网络面板不一致如何解决

问题原因
  • 缺失必要请求头字段:接口会校验Referer、User-Agent、X-Requested-With(标识AJAX请求)等字段,requests、Postman发起的默认请求没有对应字段会被拦截,跳转至首页。
  • 请求参数格式错误:你直接将嵌套的params字典放入表单参数中,requests会将params字段序列化为Python字典的原生字符串表示,与接口要求的JSON格式字符串不匹配,导致参数校验失败。
  • 缺失有效身份Cookie:若接口需要登录权限,Chrome中已保存了生效的登录Cookie,而requests、Postman的请求未携带该Cookie时会被重定向到首页。
解决方法
  1. 从Chrome中导出完整请求头:在网络面板找到对应请求,右键选择「复制」→「复制为cURL(bash)」,提取其中的User-Agent、Referer、Cookie、X-Requested-With、Accept等字段,填入代码的headers参数中。
  2. 修正参数序列化方式:将params字段对应的字典用json.dumps()序列化为标准JSON字符串后,再放入表单提交。
  3. 解析响应时优先使用.json()方法,避免手动处理文本格式的JSON数据。

修正后的代码示例:

import requests
import json

uid = "23415191"
url = "https://info.gbfteamraid.fun/web/userrank"
# 替换为从你自己Chrome请求中提取的实际请求头内容
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    "Referer": "https://info.gbfteamraid.fun/",
    "Accept": "application/json, text/javascript, */*; q=0.01",
    "X-Requested-With": "XMLHttpRequest",
    "Cookie": "替换为Chrome中该请求携带的Cookie内容"
}

payload = {
    "method": "getUserDayPoint",
    "params": json.dumps({"teamraidid":"teamraid056","userid":uid})
}

response = requests.post(url, data=payload, headers=headers)
honors = response.json()
print(honors)

Postman测试解决方案:直接将从Chrome复制的cURL导入Postman,无需手动配置参数和请求头即可发起符合要求的请求,得到预期JSON响应。

内容的提问来源于stack exchange,提问作者poplole

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 15:45:00