首页 > 解决方案 > Powershell Invoke-WebRequest 在下载失败时会抛出错误吗?

问题描述

我想知道 Powershell Invoke-WebRequest 是否会在下载请求上引发客户端错误,例如磁盘已满?

例如:

 # Download recording
        try {
            $ProgressPreference = 'SilentlyContinue'
            $r = Invoke-WebRequest -Uri $jwtURL -OutFile $outfile
            $a = [int]$r.StatusCode
        }
        catch {
            $a = [int]$_.Exception.Response.StatusCode
        }

上面的代码会只得到http状态码,还是在本地文件系统上写错误?

标签: powershellinvoke-webrequest

解决方案


从评论移到这里,因为这对于评论来说太长了

记住有错误类型。终止和不终止。并非每个错误都会终止,因此您也必须强制执行。

请参阅本文:Powershell Try Catch 教程和指南

所以,像这个例子这样的东西:

$url = 'https://stackoverflow.com'
$req = [system.Net.WebRequest]::Create($url)

try {$res = $req.GetResponse()} 
catch [System.Net.WebException] 
{$res = $_.Exception.Response}
$res.StatusCode

推荐阅读