如何检查响应标头是否包含某些标头 powershell

SKL*_*LAK 6 powershell request web

我正在使用 iwr 发出如下请求:

iwr "http://someapi/param" -UseBasicParsing -Method Head
Run Code Online (Sandbox Code Playgroud)

这让我得到的标题看起来像这样:

$var1 = "Timing-Allow-Origin: *
X-CID: 1
Accept-Ranges: bytes
Content-Length: 43
Cache-Control: public,max-age=172800
Content-Type: image/gif
Other headers
Run Code Online (Sandbox Code Playgroud)

如何检查标题是否包含以下内容:

"Timing-Allow-Origin"="*"
"Cache-Control"="public,max-age=172800"
Run Code Online (Sandbox Code Playgroud)

我试过

$var2.RawContent = iwr "http://someapi/param" -UseBasicParsing -Method Head
Write-Host ($var2.RawContent -like "*Timing-Allow-Origin: *")
Run Code Online (Sandbox Code Playgroud)

但由于某种原因这会返回 false。有没有办法做到这一点?

Lie*_*ers 6

Invoke-Webrequest从IDictionary返回的。您可以通过检索所需密钥的值来进行测试。

$response = iwr "http://someapi/param" -UseBasicParsing -Method Head
if ($response.Headers["Cache-Control"] -eq "public,max-age=172800") {
    Write-Output "Found"
} else {
    Write-Output "Not found"
}
Run Code Online (Sandbox Code Playgroud)