我正在使用邮递员的环境功能,但是一个环境不需要具有请求标头之一。通常,发送额外的不必要的请求标头是无害的,但是在我独特的情况下,它实际上中断了请求,导致端点返回401。
Postman Headers (点击链接;抱歉,我还没有10位代表发布嵌入式图片)
让我们说我有一个“开发”环境和一个“生产”环境。从环境下拉列表中选择“开发”时,我需要“仅开发需要”键和值。但是当我选择Prod时,我根本不希望请求中发送该键/值。
这当然可以通过取消选中标题项目来实现。但是然后我必须同时切换环境,并记得根据需要检查或取消选中标题。
我尝试为该变量设置一个空白值(在此示例中为Prod),但是具有没有值的键会导致无效的标头。
Accept: application/json
need-me-for-dev-only:
我尝试只为Prod提供该环境变量,但随后它会按字面意义发送包含把手的变量名称
Accept: application/json
need-me-for-dev-only: {{dev-environment-variable}}
在标题中(捕获在提琴手中)。
在没有脚本的情况下是否可以具有每个环境的请求标头?如果没有,我将调查脚本来解决我的问题。
答案 0 :(得分:0)
使用Postman,可以使用预先请求脚本和一些技巧来实现此目的。
首先,确保您的Dev环境具有一个“ Environment”变量,并将其设置为“ dev”。
现在,根据您的请求,在Pre-request Script
中添加以下内容:
let environment_name = postman.getEnvironmentVariable("Environment");
if(environment_name === "dev"){
postman.setGlobalVariable("need-me-for-dev-only-key", "need-me-for-dev-only");
postman.setGlobalVariable("need-me-for-dev-only-value", "your_value");
} else {
postman.setGlobalVariable("need-me-for-dev-only-key", "something_else");
postman.setGlobalVariable("need-me-for-dev-only-value", "something_else");
}
基本上,您可以根据环境设置标题键值对。如果是“ dev”,则设置need-me-for-dev-only
标头。否则,我们将设置任意标头,这些标头最终将被您的API忽略。
现在,在请求的Headers
部分,您可以添加以下内容:
Accept: application/json
{{need-me-for-dev-only-key}}: {{need-me-for-dev-only-value}}
就是这样。
希望有道理。