查询参数字符串失败的 Invoke-RestMethod (403)

Invoke-RestMethod with query parameter string failing (403)

我正在尝试简化我的 http 请求,但查询参数似乎会导致问题,我无法弄清楚问题所在。

作品:

$endpoint = "https://testendpoint.com/test?param1=value1&param2=value2&apikey=keyvaule"
Invoke-RestMethod -Uri "$endpoint" -Method 'Post'

失败:

$body = 
@{
    param1='value1';
    param2='value2';
    apikey='keyvalue';
}
$endpoint = "https://testendpoint.com/test"
Invoke-RestMethod -Uri $endpoint -Body $body -Method 'Post'

我尝试了几种不同的变体。任何帮助将不胜感激

在您的工作版本中,您使用了多个参数。参数通常负责指定您的调用,例如指定您的 return(Json 等)所需的格式。

在非 运行 的版本中,您获取参数并将它们传递给您的 body。但是,参数在 body 中没有位置。通常有您传递的数据,例如 JSON 数组或其他内容中的用户列表。

我不知道有什么选项可以比您在工作版本中使用的参数更智能。

如果您了解一下 http 请求的基础知识,它可能会对您有所帮助。

我还推荐一个像 Postman 这样的 API 工具,在那里你可以很好地开始 http 请求以及你需要什么数据。它还可以选择将您的 API 调用转换为 PowerShell 代码或其他代码。