【发布时间】:2021-03-27 08:47:07
【问题描述】:
我正在尝试在 Powershell 中使用 Invoke-Restmethod 来调用 API(我对此很陌生)。我可以将其发送到 POST 并返回 jwt 访问令牌。我也可以使用该令牌通过 GET 返回一个 id,但是我在下一步返回下一组数据时遇到了麻烦。我可以让它通过 curl 手动工作。我认为这个问题可能是因为返回租户列表需要多个标题,而我不确定格式才能使其正常工作。
curl 脚本如下所示,并按预期工作:
curl -XGET -H "Authorization: Bearer <jwt access token>" -H "ID: <id>" https://theapiurl.com/.......
我已经尝试了多种方法在 powershell 中执行此操作,最近如下所示,但我没有尝试任何方法。我已经尝试返回单独的 $headers 内容并构建一个字符串(即 $headers2 = $.headers.Item(Authorization) + ......),但这也不起作用。老实说,我尝试了很多不同的东西,我忘记了我有什么没有尝试过
$headers = @{
'ID' = $id
'Authorization' = $auth_string
}
$response = Invoke-RestMethod -Method Get -Headers $headers -Uri $url
请告诉我添加多个标题的正确方法(我认为这是问题所在,我做错了什么)?
【问题讨论】:
-
哈希表 (
@{ ... }) 应该没问题。您确定您的$id和$auth_string值正确吗?您收到什么错误消息/响应代码? -
不确定我是否完全理解您要执行的操作,但如果您需要在声明后向哈希表添加其他属性,请使用 add 方法:
$headers.add('name','value') -
在这个答案中,我建议使用会话变量,您可以在其中添加多个标题。 QA
标签: powershell curl invoke-restmethod