首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在预请求脚本中未在get环境变量中解析的Postman嵌套变量

在预请求脚本中未在get环境变量中解析的Postman嵌套变量
EN

Stack Overflow用户
提问于 2020-10-30 07:50:52
回答 1查看 914关注 0票数 1

想象一下以下环境变量:

  • Base-URL => https://my.website.com/api
  • Cars-URL => {{Base-URL}}/cars
  • Auth-URL {{Base-URL}}/login

如果我在邮递员中使用GET {{Cars-URL}},它可以正常工作,并调用https://mu.website.com/api/cars

同样适用于POST {{Auth-URL}},它工作得很好,我检索了一个JWT令牌。

但是,我希望在集合中的任何调用之前,使用集合的预请求脚本自动获取JWT令牌。因此,我使用以下设置:

代码语言:javascript
复制
var authUrl = pm.environment.get("Auth-URL");

pm.sendRequest({
    url: authUrl,
    method: "POST",
    header: { ... },
    body: { ... },
    function (err, res) {
        pm.environment.set("JWT-token", res)
    }
});

我在我的控制台中得到了以下输出:

代码语言:javascript
复制
POST http://{{base-url}}/login
Error: getaddrinfo ENOTFOUND {{base-url}}
Ocp-Apim-Subscription-Key: xxxxxxxxxxxxxxx
User-Agent: PostmanRuntime/7.26.5
Accept: */*
Postman-Token: xxxxxxxxxxxxxxx
Host: {{base-url}}
Accept-Encoding: gzip, deflate, br

pm.environment.get似乎不解析嵌套变量。

如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-30 08:03:29

使用pm.variables.replaceIn (可从v7.6.0中获得)。

这将起到以下作用:

代码语言:javascript
复制
var authUrl = pm.variables.replaceIn(pm.environment.get("Auth-URL"));

pm.sendRequest({
   ....
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64604466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档