【问题标题】:How to extract a particular string value from response header in postman?如何从邮递员的响应标头中提取特定的字符串值?
【发布时间】:2020-02-22 13:43:17
【问题描述】:

我有下面的字符串,想提取代码的值。我使用了 split 函数,但它在邮递员中运行良好,但是当我在 newman 中执行相同时,它会出错。

header1=https://debugger.com/ultradebugcode?code=EgxIZAAU3uHVt20pc9qqpv-xNcAWxitpB0vgMiulNLG2hkysukmjR04Fxxnuz9Yb&state=ABC

我想提取代码的值。在这种情况下是

EgxIZAAU3uHVt20pc9qqpv-xNcAWxitpB0vgMiulNLG2hkysukmjR04Fxxnuz9Yb

我使用的代码是

    var str= pm.response.headers.get('header1');
    var str1= str.split('code=', 2)[1];
    var code= str1.split('&', 2)[0]; // get the code

它在邮递员中运行良好,但为什么纽曼在这里给出错误?

【问题讨论】:

  • 那不是查询参数而不是标头吗?
  • 不,这个长字符串正在响应标头中返回。标头名称为“header1”
  • 这不是您添加到问题中以显示这一点的内容 - 您已经在查询参数的 code 值中显示了具有该值的 URL。这在 Postman 中是什么样的?可以分享一张图片吗?
  • 如果标题有键 header1 然后 pm.response.headers.get('header1') 会给你那个值。不知道你为什么要在之后做所有其他的事情?
  • 我不确定您是否是该网站的新手,但请将这些详细信息添加到问题中而不是 cmets。

标签: postman newman


【解决方案1】:

这对我有用:

let str = pm.response.headers.get("header1").split("code=")[1]

console.log(str.split("&")[0])

【讨论】:

  • 也试过了。它在邮递员中有效,但在纽曼中失败。使用此代码在 newman 中也出现以下错误。
  • 您使用的是什么版本的纽曼?您确定在这些请求中返回了标头吗?您是否尝试过将代码的不同部分记录到控制台以确保其实际拆分 something - 如果使用相同的集合来调用相同的端点,则没有理由不这样做工作一样。
  • newman 版本是 4.5.3。我今天试图隔离问题。 API 仅在状态码为 302 时返回 header1。在邮递员中它可以正常工作,没有任何问题。但是在 newman 相同的集合中,当我执行并隔离 prob 时,我只执行了这个请求,并在 newman 中看到它返回 200 OK,因此不返回 header1。有点奇怪,有些东西在邮递员中运行良好,而在纽曼中却不起作用
  • 试试这个启用--ignore-redirects
  • 它只是自动跟随重定向或 3xx 响应系列。应用程序中有一个设置可以在应用程序中自动关注它们,因此您可能看不到相同的行为。查看Settings 选项。
猜你喜欢
  • 2021-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-04
  • 2020-05-09
  • 1970-01-01
  • 2019-01-25
相关资源
最近更新 更多