You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman请求返回401时自动调用Login并重试的可行性问询

实现Postman请求401自动重登重试的方案

完全可行,而且能避免你说的冗余问题,不用给每个请求单独加前置脚本,只需要在集合层面配置一次即可,具体操作如下:

1. 准备Login请求

确保你的Login请求已经命名为Login(方便后续脚本引用),请求配置正确:

  • 请求方法:POST
  • 请求地址:{{API_URL}}auth/token/
  • 请求体(raw/JSON):
{
    "email": "{{email}}",
    "password": "{{password}}"
}

确认该请求能正常返回包含token的响应(比如响应体里有access_token这类字段)。

2. 添加集合级测试脚本

打开你的目标集合,切换到Tests标签页,添加以下脚本:

// 跳过Login请求本身,防止循环调用
if (pm.request.name !== 'Login' && pm.response.code === 401) {
    // 调用Login请求获取新token
    pm.sendRequest({
        method: 'POST',
        url: pm.variables.get('API_URL') + 'auth/token/',
        header: {
            'Content-Type': 'application/json'
        },
        body: {
            mode: 'raw',
            raw: JSON.stringify({
                email: pm.variables.get('email'),
                password: pm.variables.get('password')
            })
        }
    }, function (err, res) {
        if (!err) {
            // 这里根据实际Login响应的token字段名修改,比如你的响应是token就改成res.json().token
            const newToken = res.json().access_token;
            // 更新环境变量里的认证token(假设你用的变量名叫authToken)
            pm.environment.set('authToken', newToken);
            // 重试当前请求
            pm.execution.retry();
        } else {
            console.error('登录请求失败:', err);
        }
    });
}

3. 统一配置请求认证

确保集合内需要认证的请求,都使用环境变量里的authToken作为凭证(比如Bearer Token模式,值填{{authToken}})。

关键说明

  • 脚本只会在请求返回401时触发Login请求,不会每次请求都执行,解决了冗余问题。
  • 集合级脚本会自动应用到集合内所有请求,无需逐个配置。
  • 注意根据实际情况修改脚本里的token字段名、环境变量名,确保和你的业务逻辑匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 15:33:24