调用- webrequest 400错误请求详细消息



我正在运行Invoke-Webrequest,当我第一次运行它时将文件上传到Nexus服务器,工作正常,但当我重新运行它时,失败了,因为文件已经存在,Nexus设置为不允许覆盖现有文件。我需要的是,当我运行Invoke-Webrequest时,我试图上传的文件已经存在,它只是简单地返回400个错误的请求。我怎样才能得到更详细的错误消息,以便我知道请求的问题是什么?

try {
// invoke-webrequest
}
catch {
throw $_.Exception.Response
}

我想这将帮助你很多,我发现它在这个答案:

function ParseErrorForResponseBody($Error) {
if ($PSVersionTable.PSVersion.Major -lt 6) {
if ($Error.Exception.Response) {  
$Reader = New-Object System.IO.StreamReader($Error.Exception.Response.GetResponseStream())
$Reader.BaseStream.Position = 0
$Reader.DiscardBufferedData()
$ResponseBody = $Reader.ReadToEnd()
if ($ResponseBody.StartsWith('{')) {
$ResponseBody = $ResponseBody | ConvertFrom-Json
}
return $ResponseBody
}
}
else {
return $Error.ErrorDetails.Message
}
}
try {
$result = Invoke-WebRequest ...
}
catch {
ParseErrorForResponseBody($_)
}

最新更新