Как получить ответ с помощью 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

И это сработало идеально в соответствии с моим требованием.

Другие вопросы по тегам