Postman UI中Request timeout设置仅对主请求生效,对pm.sendRequest等子请求无效;真正起效的是Settings→General→Server中的Connection timeout和Response timeout;Pre-request Script中需用pm.sendRequest({timeout:xxx})或pm.request.timeout=xxx(v10.20+)显式设置。

Postman UI里改超时值,为什么有时不生效?
因为 Postman 的 Request timeout in ms 设置只对「主请求」(即你在界面点击 Send 发起的请求)生效,而对 pm.sendRequest、集合 Runner 中的请求、或通过 Pre-request Script 触发的子请求完全无效。很多人调了 Settings 却发现上传大文件仍超时,就是掉进了这个坑。
真正起作用的设置位置在:Settings → General → Server 区域,有两个独立字段:
-
Connection timeout:建立 TCP 连接的最大等待时间,必须 > 0,设为 0 会直接失败 -
Response timeout:收到响应头前的最长等待时间,可设为 0(永不超时),但不推荐
常见错误是只改了其中一个,比如把 Response timeout 调到 60000,但 Connection timeout 还卡在默认 10000,结果请求连连接都建不起来就报错。
Pre-request Script 中设置超时,哪些写法有效?
脚本里不能改全局超时,但能控制两种场景:
- 用
pm.sendRequest发起自定义请求时,必须显式传timeout参数,单位是毫秒:pm.sendRequest({ url: "https://api.example.com", method: "GET", timeout: 300000 }, (err, res) => { /* ... */ }); - 对当前主请求,
pm.request.timeout = 300000在较新版本(v10.20+)中已支持,但仅限于未发送前——一旦请求开始,再赋值无效 -
pm.request.setTimeout(30, 'seconds')是过时写法,新版 Postman 会静默忽略
注意:pm.environment.set("timeout", 30000) 这类操作只是存变量,不会影响任何网络行为。
Postman Mac版是一款专为macOS设计的API开发与测试工具,凭借简洁的界面和强大的功能,深受开发者喜爱。它支持发送各种HTTP请求(GET、POST、PUT等),轻松管理接口集合、环境变量和模拟服务器。Mac用户可享受原生性能、快捷键优化及与系统无缝集成的体验,适用于接口调试、自动化测试和文档生成。无论是个人项目还是团队协作,Postman for Mac都能提升API开发效率,是ma
文件上传/下载超时,光调数值还不够
大文件传输失败,90% 不是超时值不够,而是被中间环节截断:
- 代理层(如系统 http_proxy)可能对长连接或大 body 有默认限制,需在
Settings → Proxies → Bypass List加上localhost,127.0.0.1 - Postman 自身有
Max response size in MB限制(默认 50MB),超限会弹窗阻塞,不是超时;设为 0 才允许无限制读取 - 服务端 Nginx/Apache 配置比 Postman 更早触发超时,比如
client_max_body_size或proxy_read_timeout未同步调整 - SSL 验证失败时,Postman 可能卡在 handshake 阶段,看起来像超时,实则是证书问题
Linux/macOS 下环境变量干扰超时行为
Postman 会继承终端启动时的 http_proxy、https_proxy,即使你没在 UI 里开代理,这些变量也会强制走代理,而本地服务(如 localhost:8080)往往无法被代理转发,导致连接挂起。
验证方式:终端执行 env | grep -i proxy,若输出非空,就需临时清除:
unset http_proxy https_proxy HTTPS_PROXY HTTP_PROXY postman &
更彻底的做法是检查 ~/.bashrc 或 ~/.zshrc,注释掉相关 export 行——否则每次重启终端都会复现。
复杂点在于:超时表现高度依赖链路环节,从 DNS 解析、TCP 握手、TLS 协商、服务端处理、到响应流式返回,任何一个卡住都显示为“Could not get any response”,但真正原因可能藏在 curl 输出、Nginx error log 或 Wireshark 抓包里。
















