【问题标题】:Access specific value base on API response, and use it for next request - Postman根据 API 响应访问特定值,并将其用于下一个请求 - 邮递员
【发布时间】:2019-08-25 18:42:25
【问题描述】:

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

如你所见

会话是oVe6QiY89Coz1CmZffVwDHpUn76ql3rPy7xadAMynbX86FNJygw8UOcsup0B9yRzbrTALi9xkU9Kbb8ugEryfw==

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

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


尝试

我在我的测试标签中添加了这两行

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

结果

我将它显示在我的 Postman 控制台中。

session:
oVe6QiY89Coz1CmZffVwDHpUn76ql3rPy7xadAMynbX86FNJygw8UOcsup0B9yRzbrTALi9xkU9Kbb8ugEryfw==

问题是,我如何使用这个会话值并继续将它用于我的下一个 POST 请求。


问题

我需要创建 Postman 环境吗?

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

我需要调整我的任何 Postman 设置吗?

【问题讨论】:

标签: javascript rest api post postman


【解决方案1】:

看起来在Tests 下,您可以解析响应并将其保存在环境变量中。一步一步看this blog post

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

【讨论】:

  • 知道了,是不是需要创建postman环境文件并导入进去?
  • 除非它非常复杂,否则不会。请参阅this post 管理和创建新环境
【解决方案2】:

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

您可以使用globals 代替environment,并且您不必创建文件。然后,此变量将可用于 Postman 任何部分中的所有请求。

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

要访问该值 - 您需要做的就是使用 {{session}} 语法。这可用于 URL、标头、请求正文等。一旦您开始输入第一组花括号,就会出现一个自动完成框,其中包含您的值以及一些内置于应用。

这种自动完成不会发生在请求正文中,但变量语法仍会在 POST 正文中被接受。

【讨论】:

    猜你喜欢
    • 2019-01-25
    • 2018-04-12
    • 2017-06-17
    • 2018-06-22
    • 2019-12-25
    • 2021-11-01
    • 1970-01-01
    • 2020-01-16
    • 2019-07-03
    相关资源
    最近更新 更多