You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell调用API时Authorization认证失败,如何正确设置请求头?

解决PowerShell Invoke-RestMethod的API认证问题

嘿,我来帮你搞定这个401认证失败的问题!你遇到的核心问题有两个:一是错误使用了参数简写,二是请求头的格式不符合PowerShell的要求。

问题出在哪?

你用了-H参数来传递请求头,但在PowerShell的Invoke-RestMethod里,-H其实是-Host参数的简写,根本不是用来设置请求头的!这就导致你的Authorization头完全没被正确发送,服务器自然返回认证失败。

另外,即使你用对了参数,直接传字符串格式的请求头也是无效的——PowerShell要求请求头必须以**哈希表(键值对)**的形式传递。

正确的写法

你需要用-Headers参数,配合哈希表来定义Authorization头,有两种写法都可以:

写法1:先定义哈希表再调用

# 先创建请求头哈希表,注意ApiToken后面的单引号要和API要求一致
$authHeaders = @{
    Authorization = "ApiToken 'avadhohofgsdgdisbgsdhgsfd'"
}

# 调用API时传入这个哈希表
Invoke-RestMethod -Uri "https://custom.net/users" -Headers $authHeaders

写法2:直接在命令中嵌入哈希表

Invoke-RestMethod -Uri "https://custom.net/users" -Headers @{
    Authorization = "ApiToken 'avadhohofgsdgdisbgsdhgsfd'"
}

额外注意事项

有些API文档里的单引号只是用来标记占位符,实际发送时不需要带单引号。如果上面的写法还是失败,可以试试去掉令牌周围的单引号:

$authHeaders = @{
    Authorization = "ApiToken avadhohofgsdgdisbgsdhgsfd"
}
Invoke-RestMethod -Uri "https://custom.net/users" -Headers $authHeaders

最后别忘了检查你的API令牌有没有复制错误,比如多了空格或者少了字符,这也是常见的认证失败原因哦!

内容的提问来源于stack exchange,提问作者Ash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 18:27:54