You need to enable JavaScript to run this app. 如何在Postman中实现带延时与id传参的双POST请求链式调用
优惠活动
大模型
产品
解决方案
定价
更多

如何在Postman中实现带延时与id传参的双POST请求链式调用

Postman 双接口串行调用实现方案

前置校验

  • 确认你已经在第一个POST请求的Tests脚本中完成返回id的环境变量存储,可以用如下写法避免取值路径出错:
    const res = pm.response.json();
    // 将返回的id存入名为target_id的环境变量,可根据自己的命名调整
    pm.environment.set("target_id", res.id);
    // 打开Postman控制台可看到打印的id值,确认变量写入成功
    console.log("已获取的id值为:", pm.environment.get("target_id"));
    
  • 确认当前Postman顶部选中的环境配置是激活状态,避免变量写了但没选中生效。

30秒等待逻辑实现

把以下代码追加到第一个请求的Tests面板,接在存id的代码后面:

// 等待30秒后再推进后续请求流程
setTimeout(() => {}, 30000);

注意:该延迟逻辑仅在串行执行全Collection流程(通过Collection Runner、API监视器、Newman调用)时生效,手动单个触发请求时不会卡住等待。

第二个请求的URL参数填充

不需要手动拼接id值,直接在第二个POST请求的URL编辑栏,用Postman的环境变量占位符替换原本需要填id的位置即可。举例说明:

  • 假设第二个请求原本的URL格式为https://api.example.com/order/{id}/confirm
  • 直接把{id}替换成环境变量占位符,写成https://api.example.com/order/{{target_id}}/confirm
    Postman发起请求时会自动把占位符替换成第一个请求存到环境变量里的id值,无需额外写拼接代码。

执行流程编排

  • 在同一个Collection内按顺序排列两个请求:第一个存id的POST请求放在列表上方,第二个带占位符的POST请求放在其下方
  • 打开Collection Runner,勾选这两个请求,取消“并行运行(Parallel runs)”选项,保持串行执行逻辑
  • 启动Runner后即可自动触发全流程:发第一个请求 → 提取id存为环境变量 → 等待30秒 → 自动替换第二个请求URL中的id值 → 发送第二个请求

常见问题排查

  • 若第二个请求发送时id值为空,优先检查第一个请求的Tests脚本取值路径是否和实际返回的JSON结构匹配,同时确认环境变量选中状态正确
  • 若30秒等待没生效,检查是否是手动单点击按钮触发的请求,需通过Runner类工具启动全流程才会触发异步等待逻辑
  • 可在第一个请求的Tests脚本中增加id非空校验,避免空值触发后续请求:
    pm.test("接口返回的id值非空", () => {
        pm.expect(pm.environment.get("target_id")).to.not.equal(null);
    });
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 11:45:07