Postman 默认自动添加 User-Agent 头为 PostmanRuntime/x.y.z,不显示在 Headers 编辑区;手动添加可覆盖,默认值仍生效于空值;仅改 UA 不足以绕过风控,需同步 Sec- 系列等真实浏览器头。

User-Agent 在 Postman 中默认不可见,但可以手动添加或覆盖;它不是全局开关,而是每个请求独立配置的 Header 字段。
Postman 里 User-Agent 是怎么默认生成的
Postman 每次发请求时会自动带上 User-Agent 头,值形如 PostmanRuntime/10.27.1(版本号随安装包变化)。这个值不会显示在 Headers 编辑区,除非你主动添加同名字段——此时你的值会覆盖默认值。
验证方式很简单:向 https://httpbin.org/user-agent 发个 GET 请求,在响应体里就能看到实际发出的 User-Agent 字符串。
- 不手动添加
User-Agent字段 → 使用默认的PostmanRuntime/x.y.z - 在 Headers 表格中新增一行:
Key填User-Agent,Value填任意字符串 → 该值生效,覆盖默认 - 如果填了但值为空或只含空格 → 请求头里仍会带默认值,不是被删掉
为什么改了 User-Agent 还是被服务器拒绝
单纯替换 User-Agent 往往不够。现代风控系统会交叉校验多个 Header 字段,比如 Sec-Fetch-Site、Sec-Ch-Ua、Accept-Language,甚至 Origin 是否匹配目标域名。
- 只改
User-Agent而保留其他 Postman 默认头(如Postman-Token)→ 容易被识别为工具流量 - 用 Chrome 真实 UA 却没配
Sec-Ch-Ua或Sec-Fetch-Mode→ 部分 API 会直接返回 403 - Headers 表格里勾选了
Content-Type但值是空的 → 可能触发后端校验失败,和 UA 无关但现象类似
建议做法:在 Chrome 开发者工具 Network 标签中复制一个真实请求的完整 Headers,粘贴进 Postman 的 Headers 区,再逐项检查是否有遗漏字段(尤其是以 Sec- 开头的加密客户端提示)。
如何让每个请求随机切换 User-Agent
Postman 本身不支持运行时动态生成 Header,但可以通过 Pre-request Script + 环境变量模拟“随机切换”效果。
步骤如下:
- 先在环境变量里定义一个数组,比如
userAgents值设为["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36"] - 在请求的 Pre-request Script 中写:
const uaList = JSON.parse(pm.environment.get("userAgents")); const randomUA = uaList[Math.floor(Math.random() * uaList.length)]; pm.request.headers.upsert({key: "User-Agent", value: randomUA}); - 确保该请求启用了对应环境,且脚本执行前没有其他地方硬编码了
User-Agent头
注意:这种写法只对当前请求生效,不能跨请求共享状态;如果需要全局控制,得靠 Collection-level 的 Pre-request Script,但逻辑更复杂,容易误影响其他接口。
修改 User-Agent 后请求失败的典型排查点
改完 User-Agent 出问题,别急着换 UA 字符串,先确认这几个硬性条件是否满足:
-
Content-Type和请求 body 格式必须严格匹配:选raw / JSON就得填application/json,选form-data就不能设成application/json - 如果目标接口要求登录态,
Cookie头必须有效且未过期;单改 UA 不解决鉴权问题 - 某些网站强制要求
Referer和当前请求 URL 同源,漏掉会导致 403 —— 这个和 UA 无关,但常被一并忽略 - Postman 的 SSL 证书验证默认开启,若对接自签名 HTTPS 接口,需关掉 Settings → General → “SSL certificate verification”
最常被跳过的其实是 Referer 和 Cookie 的同步更新——UA 换了,浏览器上下文其实也变了,但 Postman 不会自动帮你刷新这两个字段。











