В POSTMAN, как я могу получить подстроку элемента заголовка ответа?

Я использую почтальон, чтобы получить значение заголовка ответа, как показано ниже:

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

Я могу напечатать значение через console.log(data) без труда.

Однако, что я действительно хочу, так это "bbb". Так что мне нужно немного substring() тип функции. И, очевидно, "данные" не является строковым типом JavaScript, потому что data.substring(10) например, всегда возвращать ноль.

Кто-нибудь, что мне нужно сделать в этом случае?

Существует ли какой-нибудь документ по API почтальона, который это объясняет?

1 ответ

Здесь у вас под рукой полная гибкость JavaScript, поэтому просто разделите строку и используйте часть после последней /:

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

См. Документацию школы W3 по split и pop, если вам нужны более подробные примеры внутреннего устройства JavaScript.

Вы можете установить переменную окружения в почтальоне. попробуй что-то вроде

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

Некоторая первоначальная мысль - мне нужна была определенная часть заголовка "Местоположение", такая как 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);

Возможно, вы уловили, что "split" - это выбор, чтобы дать вам некоторый массив значений. Если текст, который вы разделяете, всегда имеет одинаковую длину массива, должно быть легко поймать правильный номер

Другие вопросы по тегам