【发布时间】:2018-11-27 21:30:29
【问题描述】:
我正在尝试通过 PS 使用 Invoke-RestMethod 对我们的 Netbox 环境进行基本 GET。我正在使用来自 netbox 的 API 令牌并将其放入 Authorization 标头中,但无论我如何尝试,我都会从 Powershell 获得“未提供身份验证凭据”。我很茫然,因为这可以通过 Postman 完美运行。
$APIKey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" (removed)
$Headers = @{}
$Headers.Add("Authorization", "Token $APIKey")
$Headers.Add("Content-Type", "application/json")
$Headers.Add("Accept", "application/json")
$URI = "https://dcim.xxxxxxx.net/api/dcim/devices"
$Test = Invoke-RestMethod -Uri $URI -Headers $Headers
我已经尝试过很多不同的方式来格式化标题,硬编码只是为了测试,但无济于事。
【问题讨论】:
-
我在我的设备上测试了您的代码,正如我在 Fiddler 中看到的那样,所有标头都已正确传输。 Authorization: Token XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Content-Type: application/json Accept: application/json PowerShell中的headers和Postman中的headers有区别吗?
-
Content-Type 可以删除,因为它是一个 GET 请求,没有请求正文。
标签: powershell-4.0