如何通过变量将 headers 中的邮递员授权 属性 设置为 Null / None 的值?

How to set Postman's Authorization property in headers via variables to a value of Null / None?

在 Postman 中,我想通过它的环境功能切换到不同的 API 端点。我的第一个 API 使用基本身份验证,我的第二个 API 不使用任何身份验证。

我在我的所有请求中使用变量 {{auth}} 设置授权 header 作为值。在环境中 {{auth}} 设置为

我的请求适用于 API 1 但不适用于 API 2。显然邮差在后一种情况下也尝试授权并给我一个 401(未授权)响应。因此,每当我想向我的 API 2.

发出请求时,我都需要手动停用授权 header

在 Robot Framework 中(底层使用 Python 的请求模块)我可以通过 {"Authorization": "Basic xxx} 到 API 1 和 {"Authorization": null} 到 API 2 效果很好。

Postman 可以吗?如果是 - 如何?

编辑/更新:

我的解决方案(感谢@shaochuancs)

在环境中为每个 API 设置了两个 ENV,并定义了一个 pre-request 脚本 对于包含所有请求的文件夹。

API 1(基本验证):

API 2(无授权):

Pre-Request 脚本:

Header 在每个请求中:

现在我可以轻松地在两个环境之间切换:

站点注释:

理想情况下,我也会在每个环境中将 AuthKyeValue 设置为 ENV - 因此不需要任何 pre-request 脚本 - 但是当我这样做时,Postman 会将此 ENV 评估为空字符串。不知道为什么。

"My first API uses Basic Auth, my second API does not use any auth."

在这种情况下,您可以为 HTTP header 密钥使用变量,将第一个 API 设为 "Authorization",第二个设为 undefined一个——当它是 undefined 时,服务器将不会收到该 HTTP header.

Pre-request 脚本如下所示:

// For first API
pm.globals.set('AuthorizationKey', 'Authorization');
// For second API
pm.globals.set('AuthorizationKey', undefined);

pm.globals.set('AuthorizationValue', 'Basic xxxxxx');