J'utilise Postman pour obtenir la valeur d'en-tête de réponse comme ci-dessous:
var data = postman.getResponseHeader("Location") . //value is "http://aaa/bbb" for example
Je peux imprimer la valeur via console.log (data)
facilement.
Cependant, ce que je veux vraiment, c'est "bbb". J'ai donc besoin d'un type de fonction substring ()
. Et apparemment, «data» n'est pas un type de chaîne javascript, car data.substring (10)
par exemple renvoie toujours null.
Quelqu'un at-il ce que je dois faire dans ce cas?
Si un document d'API Postman existe qui explique cela?
3 Réponses :
Vous pouvez définir une variable d'environnement dans postman. essayez quelque chose comme
var data = JSON.parse(postman.getResponseHeader("Location")); postman.setEnvironmentVariable("dataObj", data.href.substring(10));
non, ce n'est pas la solution, j'ai vu la même solution ailleurs dans SO. mon en-tête ne renvoie pas un objet json.
Une première réflexion - j'avais besoin d'une partie spécifique de l'en-tête "Location" comme l'OP, mais je devais également obtenir une valeur spécifique de cette partie spécifique. Mon en-tête ressemblerait à quelque chose comme ceci
"Et la valeur dont j'ai besoin passer à la requête suivante en tant que variable
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);
Pourriez-vous comprendre le point ici, "split" est le choix pour vous donner un tableau de valeurs. Si le texte que vous divisez donne toujours la même longueur de tableau, il devrait être facile d'attraper le nombre correct
Vous avez toute la flexibilité de JavaScript à portée de main ici, alors divisez simplement la chaîne et utilisez la partie après le dernier /
:
var data = pm.response.headers.get("Location").split("/").pop());
Voir l'école W3 documentation de split et pop si vous avez besoin d'exemples plus détaillés de composants internes JavaScript.
est cette erreur exacte ce que vous obtenez?
en fait, seul toString () est nécessaire d'abord pour le convertir en chaîne javascript, puis il est explicite.