Powershell Invoke-RestMethod如何正确添加onlyCurrent=false请求参数
解决方案
错误原因
你使用的-Where-Object是PowerShell用于本地返回结果过滤的语法,无法向API请求添加URL查询参数,接口无法收到你传递的onlyCurrent参数,因此返回参数无效报错。
正确实现方式
以下两种方式任选其一即可:
方式1:直接拼接URL
GET请求的查询参数直接附加在URL末尾即可,注意规则:
- 若原URL无其他查询参数,首个参数以
?开头 - 若原URL已有其他
?引导的查询参数,新增参数以&开头
示例(原URL无其他参数场景):
$response = Invoke-RestMethod 'https://api._________.com/api/gateway.php/gemco/v1/reports/120?onlyCurrent=false' -Method 'GET' -Headers $headers
方式2:通过-Body参数传参(更易维护)
Invoke-RestMethod发送GET请求时,会自动将-Body传入的哈希表键值对转换为URL查询参数,不需要手动拼接URL,参数较多时更不容易出错:
$queryParams = @{ onlyCurrent = 'false' } $response = Invoke-RestMethod 'https://api._________.com/api/gateway.php/gemco/v1/reports/120' -Method 'GET' -Headers $headers -Body $queryParams
提示:如果接口要求参数为布尔类型而非字符串格式,将
onlyCurrent = 'false'改为onlyCurrent = $false即可。
内容的提问来源于stack exchange,提问作者Angie S
相关产品推荐
相关产品推荐

