Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 范围标头必须使用适当的属性或方法_Powershell_Invoke Webrequest_Qradar - Fatal编程技术网

Powershell 范围标头必须使用适当的属性或方法

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

我在产品论坛上到处搜索,问了很多问题,但似乎无法解决这个问题

使用PowerShell 5,我正试图通过使用API文档所示的范围标头来限制我的结果。但是,当我尝试使用它时,我收到以下错误

“必须使用适当的属性或属性修改“范围”标题 方法。参数名称:名称“

我试过:

$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