Как получить ответ с помощью WebClient в powershell
Я видел следующий код в stackru:
$uri = "http://google.com"
$wc = New-Object System.Net.WebClient
$wc.UseDefaultCredentials = $true
$json = $wc.DownloadString($uri)
И это работает нормально, но я хочу, чтобы я как-то мог сохранить код состояния URL, который я нажимаю.
На самом деле, когда я нажимаю на URL со статусом 404, он возвращает исключение для того же.
Может ли кто-нибудь помочь мне относительно того, как я могу сохранить статус или даже если я могу сохранить исключение, оно возвращается обратно.
2 ответа
Это должно быть хорошей отправной точкой для вас:
#requires -Version 3
$out = Invoke-WebRequest -Uri 'http://google.com' -UseDefaultCredentials -SessionVariable 'conn'
Тогда вы можете проверить $conn
для деталей соединения. $out
будет иметь статус, возвраты и т. д. $out.StatusCode = 200
в этом примере.
Я немного изучил и увидел, что следующий метод работает нормально в powershell 2.0
$req = [system.Net.WebRequest]::Create($uri)
$req.UseDefaultCredentials = $true
try
{
$res = $req.GetResponse()
}
catch [System.Net.WebException]
{
$res = $_.Exception.Response
}
$int = [int]$res.StatusCode
echo $int
И это сработало идеально в соответствии с моим требованием.