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

Postman没有以编程方式添加标题,postman,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}}' });

在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
报告它在那里,但在节目开始时,它肯定不在。以下是控制台输出:

我还尝试将
disabled:false
添加到传递给
add
的对象中,这是基于我手动将头添加到单个请求时的结果

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

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

发生了什么?

如果您试图在
请求前脚本
测试
选项卡中使用
{…}
语法,它不会为您设置环境变量值,因为这只能用于URL、标头和请求正文

在代码中使用它的方式总是将
Authorization
键设置为字符串-'Token{{apiToken}'

获取值的一种非常可怕的方法是:

pm.request.headers.add({
    key: 'Authorization',
    value: `Token ${pm.environment.get('apiToken')}`
});
但同样,这不会在集合级别设置头


您可以将其作为全局变量添加到
请求前脚本中的集合级别,然后将其添加到每个请求中

我不认为这是可行的,是吗?你有没有阅读过邮递员网站上的一些文档,它们告诉你这是一种有效的添加方式?你能不能把它直接添加到标题部分?该变量将执行相同的操作并为请求设置。添加
Token{{apiToken}}
作为Auth头上的值。我应该提到,我首先尝试使用
pm.environment
中的值直接设置它。这是一个漫长的过程。现在这并不重要;)您如何在集合级别捕获和存储
apiToken
,以便在标题中引用它?可能是重复的,因为我没有看到集合级别标题选项卡,这就是问题所在。不过,有一个收藏授权标签最终对我有效。如果你在问题中提到你在收藏级别更需要它,我会说现在还没有一个标签,尽管这是一个多次被要求的功能请求。哇,你说得对。当我写下那个问题时,我一定比我想象的还要累。D:很抱歉搞混了!公平地说,我在原始问题中确实说过“我为我的整个收藏定义了以下预请求脚本”。但我想,我的目标是不必手动编辑每个请求,这一点还不太清楚P:)是的,实际上我不得不重读一遍,才能看到句子末尾的“收藏”参考。因此,我提出的方法可以正常工作并正确设置标题值,但因为您不想手动编辑每个请求,所以它对您不起作用。您可以导出集合,然后执行
查找/替换
并重新导入(但这不是一个很好的解决方法)