Postman没有以编程方式添加标题

时间:2018-02-12 04:27:47

标签: postman

在Ubuntu 16.04上使用Postman 5.5.0。我为我的整个集合定义了以下预请求脚本。我的目标是在集合级的每个请求上设置一个标头,而不必手动添加它。

console.log('adding "Authorization: Token {{apiToken}}" header to current request');

pm.request.headers.add({
    key: 'Authorization',
    value: 'Token {{apiToken}}'
});
console.log(pm.request.headers);

我还尝试使用value: 'Token '+pm.environment.get('apiToken')直接设置标头值。

这两种方法都没有将其添加到请求中。 pm.request.headers报告说它在那里,但是显示时间,肯定不是。这是控制台输出:

no auth header sad panda

我还尝试将disabled: false添加到传递给add的对象,具体取决于我手动将标头添加到单个请求中的内容。

发生了什么事?

1 个答案:

答案 0 :(得分:0)

如果您尝试使用{{...}}Pre-request Script标签中的Tests语法,则不会为您设置环境变量值,如这只能在URL,Headers和Request主体中使用。

您在代码中使用它的方式始终只是将Authorization键设置为字符串 - '令牌{{apiToken}}'。

获得价值的一种完全可怕的方式是:

pm.request.headers.add({
    key: 'Authorization',
    value: `Token ${pm.environment.get('apiToken')}`
});

但同样不会在集合级别设置标题。

您可以在pre-request script的集合级别将其添加为全局变量 - 然后可以将其添加到每个请求中。