首页 文章

根据 API 响应访问特定值,并将其用于下一个请求 - 邮递员

提问于
浏览
0

我使用 Postman 对我的一个 API 进行发布以检索会话 ID

在此输入图像描述

你可以看到

会话是oVe6QiY89Coz1CmZffVwDHpUn76ql3rPy7xadAMynbX86FNJygw8UOcsup0B9yRzbrTALi9xkU9Kbb8ugEryfw==

我需要抓住它,将其存储在变量中,并将其用于我的下一个 POST 请求

如何基于我的第一个响应动态访问该会话值并继续将其用作我的下一个请求?


尝试

我在“测试”选项卡中添加了这两行

let response = pm.response.json().session; 
console.log('session: ', response);

结果

我把它显示在 Postman Console 中。

session:
oVe6QiY89Coz1CmZffVwDHpUn76ql3rPy7xadAMynbX86FNJygw8UOcsup0B9yRzbrTALi9xkU9Kbb8ugEryfw==

问题是,如何使用此会话值并继续将其用于下一个 POST 请求。


问题

我是否需要创建 Postman 环境?

要么

这是我可以通过在 Postman 中编写一个简单的 Pre-request 脚本来实现的吗?

要么

我是否需要调整任何邮递员设置?


我现在对任何建议持开放态度。

任何 hints/suggestions /帮助都将非常感谢!

2 回答

  • 1

    看起来在Tests下你可以解析响应将其保存在环境变量中。一步一步看这篇博文

    var jsonData = JSON.parse(responseBody);
    postman.setEnvironmentVariable("session", jsonData.session);
    
  • 1

    继上一个答案之后 - 如果您以这种方式设置变量,那么您需要一个环境文件。

    您可以使用globals而不是environment,而不必创建文件。然后,此变量将可用于邮递员任何部分的所有请求。

    var jsonData = pm.response.json()
    pm.globals.set('session', jsonData.session)
    

    要访问该值 - 您需要做的就是使用{{session}}语法。这可以在 URL,Headers,Request Body 等中使用。只要您开始键入第一组花括号,就会出现一个自动完成框,其中包含您的值以及内置于其中的一些动态框。应用。

    此自动完成不会在请求正文中发生,但 POST 主体中仍将接受变量语法。

相关问题