使用Postman从请求中获取令牌并将其发送给另一个请求

u3r8eeie  于 2023-04-20  发布在  Postman
关注(0)|答案(6)|浏览(225)

我正在使用postman对REST API进行一些测试。
为了登录,我使用一个post请求,该请求用一个令牌响应,我需要保留该令牌以用于另一个请求。
我是这样做的:

然后我想在另一个请求中使用它,该请求需要在头部中使用该令牌:

好像没有发令牌,我哪里做错了?

fhg3lkii

fhg3lkii1#

假设登录响应是:

{
   "message": {
        "token":"Some token value here"
    }
}

在最新的postman中有一个轻微的变化,这里是设置变量的语法:

var data = pm.response.json();
pm.environment.set("token", data.message.token);

阅读更多信息:https://learning.getpostman.com/docs/postman/environments_and_globals/variables/

j7dteeu8

j7dteeu82#

问题是我使用的是postman.setEnvironmentVariable()而不是postman.setGlobalVariable()
我找到答案了here

qlfbtfca

qlfbtfca3#

我在Postman的Tests选项卡中使用了下面的脚本,它对我很有效。

pm.environment.set("access_token", JSON.parse(responseBody).access_token);

在我的第一个API中设置了访问令牌之后,我将在第二个API中传递该访问令牌。

mwecs4sa

mwecs4sa4#

您可以将令牌保存到环境变量中,并在该集合下的任何请求中访问。可能这个链接会有所帮助:
Extracting data from responses and chaining requests

nnvyjq4y

nnvyjq4y5#

1.转到登录API
1.转到“测试”选项卡。
1.添加以下脚本。此脚本将使用响应令牌设置变量“AuthToken”。
var jsonData = JSON.parse(responseBody);postman.setEnvironmentVariable(“AuthToken”,jsonData.data.accessToken);

k0pti3hp

k0pti3hp6#

除了上面Gaurav的回答,可能先检查响应的状态会更好:

if(pm.response.code === 200) {
    pm.environment.set('authToken', pm.response.json().token)
}

相关问题