我正在使用邮递员来获取响应标头值,如下所示:
var data = postman.getResponseHeader("Location") . //value is "http://aaa/bbb" for example
我可以轻松地通过console.log(data)
打印该值。
但是,我真正想要的是“ bbb”。因此,我需要一些substring()
类型的函数。显然,“数据”不是JavaScript字符串类型,因为例如data.substring(10)
始终返回null。
有人在这种情况下我需要做什么吗?
是否存在任何对此进行解释的邮递员API文档?
答案 0 :(得分:1)
一些最初的想法-我需要“位置”标头的特定部分(例如OP),但我还必须从该特定部分获得特定值。 我的标题看起来像这样
我需要将“状态”值作为变量传递给下一个请求
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);
在这里您可能会明白,“ split”是为您提供一些值数组的选择。 如果您要拆分的文本始终具有相同的数组长度,那么应该很容易捕获正确的数字
答案 1 :(得分:1)
您可以在这里轻松掌握JavaScript的全部灵活性,因此只需拆分String并在最后一个/
之后使用部分即可:
var data = pm.response.headers.get("Location").split("/").pop());
答案 2 :(得分:0)
您可以在邮递员中设置环境变量。尝试类似
var data = JSON.parse(postman.getResponseHeader("Location"));
postman.setEnvironmentVariable("dataObj", data.href.substring(10));