【问题标题】:Postman Path Variables without slashs没有斜杠的邮递员路径变量
【发布时间】:2021-05-13 20:13:02
【问题描述】:

我有一个带有 CustomerName 路径变量的基本 GET 请求,我试图在 Postman 中访问,如下所示:

https://my-domain.com/../{{version}}/{{tenant}}/{{company}}/AR/ARCustomers(":CustomerName")

由于某种原因,: 在前面没有 /\ 时不会被识别为 PATH 变量,例如 /:。此外,路径变量将被视为CustomerName"),除非我转义"。如果我以我认为它期望的方式输入它,那么我最终会得到ARCustomers("/:CustomerName/"),但不幸的是,当我这样做时,它会像ARCustomers("/TEST/")' 那样被翻译成卷曲(添加不必要的/s)。

如何设置没有正斜杠的路径变量,这不可能吗?

此外,在这个示例中,我在路径变量周围使用了",但我实际上需要它是',不幸的是,这两个导致我的 cURL 中的正斜杠出现问题

【问题讨论】:

  • 为什么要使用路径变量而不是普通变量?
  • 我不希望将其存储(隐藏)为环境或集合变量,因为这里的期望是当我们使用它进行故障排除和测试时它会定期更改。查询变量在? 之后,所以我希望利用路径变量
  • 您可以将预请求中的变量修改为 pm.variables.set("name",value)

标签: api postman integration


【解决方案1】:

如果你的网址是这样的:

https://my-domain.com/AR/ARCustomers("/:CustomerName/")

然后在预请求脚本中使用:

path = pm.request.toJSON().url.variable.find((a)=>a.key==="CustomerName").value

console.log(pm.request.url.toString())
pm.request.url=pm.request.url.toString().replace(`/${path}/`,path)
console.log(pm.request.url.toString())

Postman 属性通过 pm 对象公开,您可以从 prerequest 脚本修改除正文以外的大多数属性。

这里我们将 /content/ 替换为内容

【讨论】:

    猜你喜欢
    • 2012-11-16
    • 1970-01-01
    • 2015-01-02
    • 1970-01-01
    • 2021-11-06
    • 2020-11-20
    • 2013-01-28
    • 1970-01-01
    相关资源
    最近更新 更多