在 POSTMAN 中,我如何获取响应标题项的子字符串?

Posted

技术标签:

【中文标题】在 POSTMAN 中,我如何获取响应标题项的子字符串?【英文标题】:In POSTMAN how do i get substring of response header item? 【发布时间】:2019-06-02 17:57:24 【问题描述】:

我正在使用邮递员获取响应头值,如下所示:

var data = postman.getResponseHeader("Location") . //value is "http://aaa/bbb" for example 

我可以通过console.log(data) 轻松打印值。

但是,我真正想要的是“bbb”。所以我需要一些substring() 类型的函数。显然 'data' 不是 javascript 字符串类型,因为例如 data.substring(10) 总是返回 null。

在这种情况下我需要做什么吗?

如果有任何邮递员 API 文档可以解释这一点?

【问题讨论】:

你得到的正是这个错误吗? 其实只需要先toString()把它转换成javascript字符串,然后就可以自我解释了。 这能回答你的问题吗? How can I get last characters of a string 【参考方案1】:

您可以在 postman 中设置环境变量。尝试类似

var data = JSON.parse(postman.getResponseHeader("Location"));
postman.setEnvironmentVariable("dataObj", data.href.substring(10));

【讨论】:

不,这不是解决方案,我在 SO 的其他地方看到了相同的解决方案。我的标头没有返回 json 对象。 满足我的特定需求,谢谢【参考方案2】:

一些初步想法 - 我需要像 OP 这样的“位置”标题的特定部分,但我还必须从该特定部分获取特定值。 我的标题看起来像这样

https://example.com?code_challenge_method=S256&redirect_uri=https://localhost:8080&response_type=code&state=vi8qPxcvv7I&nonce=uq95j99qBCGgJvrHjGoFtJiBoo

我需要“状态”值作为变量传递给下一个请求

var location_header = pm.response.headers.get("Location");
var attributes = location_header.split('&');

console.log(attributes);

var len = attributes.length;
var state_attribute_value = ""
var j = 0;
for (var i = 0; i < len; i++) 
    attribute_key = attributes[i].split('=')[0];
    if (attribute_key == "state") 
        state_attribute_value = attributes[i].split('=')[1];
    
    j = j + 1;

console.log(state_attribute_value);
pm.environment.set("state", state_attribute_value);

您是否明白这里的意思,“拆分”是为您提供一些值数组的选择。 如果您要拆分的文本总是给出相同的数组长度,那么应该很容易捕捉到正确的数字

【讨论】:

【参考方案3】:

您可以在这里轻松获得 JavaScript 的全部灵活性,因此只需拆分字符串并使用最后一个 / 之后的部分:

var data = pm.response.headers.get("Location").split("/").pop());

如果您需要更深入的 JavaScript 内部示例,请参阅 W3 学校的 split 和 pop 文档。

【讨论】:

以上是关于在 POSTMAN 中,我如何获取响应标题项的子字符串?的主要内容,如果未能解决你的问题,请参考以下文章

我需要获取 API 以从响应中获取与 POSTMAN 中的结果相同但失败的原始值?

Postman / pm api sendRequest 命令:如何等到响应返回后再填充变量?

使用 Jquery AJAX Web 方法发送 RAW TEXT 数据并获取 HTML 响应的 POST 方法并使用 POSTMAN 检查

如何绑定listView中项的子属性?

Postman中如何存储和重复使用cookies?

iOS 和 RestKit:如何正确获取 text/html 响应?