Заголовок диапазона должен использовать соответствующее свойство или метод - PullRequest
1 голос
/ 13 июня 2019

Я искал высоко и низко и спрашивал на форумах по продуктам, но не могу понять это.

Использование 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

Кроме того, вот пример curl, приведенный в документации API:

curl -s -X GET -u ИМЯ ПОЛЬЗОВАТЕЛЯ -H 'Диапазон: items = 0-49' -H 'Версия: 10.0' -H 'Принять: application / json' 'https://product.com/api/s/of'

Действительно ценю любые указатели на это.

Заранее спасибо

1 Ответ

3 голосов
/ 13 июня 2019

Кажется, это ошибка в 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()
...