我在产品论坛上进行了高低搜索,但似乎无法弄清楚。
使用PowerShell 5,我试图按照API文档指示的方式使用范围标头来限制结果。但是,当我尝试使用它时收到以下错误。
““ RANGE”标头必须使用适当的属性或 方法。参数名称:名称“
我尝试过:
$headers = @{
SEC= $apiKey
range="items=0-49"
}
$result = Invoke-RestMethod -Method get -Uri $global:URI -ContentType 'application/json' -Header $headers
和...
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add('Accept','Application/Json')
$headers.Add('RANGE','items=0-49')
$headers.Add('SEC',$ApiKey)
$result = Invoke-WebRequest -Uri $global:URI -Headers $headers -Method get
此外,这是API文档中提供的curl示例:
curl -s -X GET -u用户名-H'范围:items = 0-49'-H'版本:10.0'-H'接受:application / json''https://product.com/api/s/of'
真的很感谢对此的任何指点。
预先感谢
答案 0 :(得分:3)
这似乎是PowerShell中的错误。我找到了此博客页面:https://sethjackson.github.io/2017/01/18/header-woes/
根据此页面的解决方法:
$request = [System.Net.WebRequest]::Create($uri)
$request.Method = "GET"
$request.Headers.Add("SEC", $apiKey)
# add range header
$request.AddRange("items", 0, $count)
$reader = New-Object System.IO.StreamReader($request.GetResponse().GetResponseStream())
$data = ConvertFrom-Json $reader.ReadToEnd()