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

时间:2018-01-24 19:03:02

标签: javascript rest api post postman

我使用Postman对我的某个API发布帖子以检索会话ID

enter image description here

你可以看到

会话为oVe6QiY89Coz1CmZffVwDHpUn76ql3rPy7xadAMynbX86FNJygw8UOcsup0B9yRzbrTALi9xkU9Kbb8ugEryfw==

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

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

尝试

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

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

结果

我在Postman Console中显示了这个。

session:
oVe6QiY89Coz1CmZffVwDHpUn76ql3rPy7xadAMynbX86FNJygw8UOcsup0B9yRzbrTALi9xkU9Kbb8ugEryfw==

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

问题

我是否需要创建Postman环境?

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

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

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

任何提示/建议/帮助都将非常感谢!

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

您可以使用while代替globals,而无需创建文件。然后,此变量将可用于邮递员任何部分的所有请求。

environment

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

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