Powershell 范围标头必须使用适当的属性或方法
我在产品论坛上到处搜索,问了很多问题,但似乎无法解决这个问题 使用PowerShell 5,我正试图通过使用API文档所示的范围标头来限制我的结果。但是,当我尝试使用它时,我收到以下错误 “必须使用适当的属性或属性修改“范围”标题 方法。参数名称:名称“ 我试过:Powershell 范围标头必须使用适当的属性或方法,powershell,invoke-webrequest,qradar,Powershell,Invoke Webrequest,Qradar,我在产品论坛上到处搜索,问了很多问题,但似乎无法解决这个问题 使用PowerShell 5,我正试图通过使用API文档所示的范围标头来限制我的结果。但是,当我尝试使用它时,我收到以下错误 “必须使用适当的属性或属性修改“范围”标题 方法。参数名称:名称“ 我试过: $headers = @{ SEC= $apiKey range="items=0-49" } $result = Invoke-RestMethod -Method get -Uri $global:URI -Con
$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 USERNAME-H'Range:items=0-49'-H'Version:10.0'-H'Accept:application/json''
真的很感谢任何关于这方面的建议
提前感谢这似乎是PowerShell中的一个bug。我发现这个博客页面: 根据本页的解决方法:
$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()
当您打印出
$Headers
时,是否看到预期值?据我所知,是的。使用数组时,名称显示范围,值显示items=0-49。当显示字典时,键是range,值是items=0-49。我已经读到有一些网站会显示您实际发送的内容。。。您可能需要找到一种方法来查看另一端得到了什么。谢谢,但是当我尝试此操作时,我得到了一个错误:“异常设置”标题:“无法将“System.Object[]”类型的“System.Object[]”值转换为“System.Net.WebHeaderCollection”。“对于此行:$request.Headers+=@{“SEC”=$apiKey}尝试使用Add
(请参阅更新的答案)或$request.Headers[“SEC”]=$apiKey