1

我在产品论坛上搜索了高低并询问过,但似乎无法弄清楚这一点。

使用 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 '接受:应用程序/json' ' https://product.com/api/s/of '

非常感谢对此的任何指示。

提前致谢

4

1 回答 1

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()
于 2019-06-13T14:56:05.610 回答