我正在尝试验证我的网址是否得到响应。
换句话说,我正在尝试检查该网站的身份验证是否已成功。
I used:
$HTTP_Request = [System.Net.WebRequest]::Create('http://example.com')
$HTTP_Response = $HTTP_Request.GetResponse()
$HTTP_Status = [int]$HTTP_Response.StatusCode
If ($HTTP_Status -eq 200) {
Write-Host "Site is OK!"
} Else {
Write-Host "The Site may be down, please check!"
}
$HTTP_Response.Close()
我得到了回应:
远程服务器返回错误:(401) 未经授权。
但之后我得到:
网站没问题
这是否意味着没问题?如果不是,有什么问题吗?
你一切正常,因为你重新运行你的命令并且$HTTP_Response
包含先前成功运行的对象。将 try/catch 与正则表达式结合使用来提取正确的状态代码(并清理变量):
$HTTP_Response = $null
$HTTP_Request = [System.Net.WebRequest]::Create('http://example.com/')
try{
$HTTP_Response = $HTTP_Request.GetResponse()
$HTTP_Status = [int]$HTTP_Response.StatusCode
If ($HTTP_Status -eq 200) {
Write-Host "Site is OK!"
}
else{
Write-Host ("Site might be OK, status code:" + $HTTP_Status)
}
$HTTP_Response.Close()
}
catch{
$HTTP_Status = [regex]::matches($_.exception.message, "(?<=\()[\d]{3}").Value
Write-Host ("There was an error, status code:" + $HTTP_Status)
}
.Net HttpWebRequest.GetResponse()在非正常状态代码上引发异常,您可以在此处阅读更多相关信息:返回 http 状态代码 400(错误请求)时,.Net HttpWebRequest.GetResponse() 引发异常
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)