gua*_*ome 10 .net c# httpwebrequest
我正在编写一个应用程序来检查一些内部Web应用程序的状态.其中一些应用程序使用Windows身份验证.当我使用此代码检查状态时,它会抛出The remote server returned an error: (401) Unauthorized..这是可以理解的,因为我没有向网站提供任何凭据,所以我没有被授权.
WebResponse objResponse = null;
WebRequest objRequest = HttpWebRequest.Create(website);
objResponse = objRequest.GetResponse();
Run Code Online (Sandbox Code Playgroud)
有没有办法忽略401错误而不做这样的事情?
WebRequest objRequest = HttpWebRequest.Create(website);
try
{
objResponse = objRequest.GetResponse();
}
catch (WebException ex)
{
//Catch and ignore 401 Unauthorized errors because this means the site is up, the app just doesn't have authorization to use it.
if (!ex.Message.Contains("The remote server returned an error: (401) Unauthorized."))
{
throw;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 18
我建议试试这个:
try
{
objResponse = objRequest.GetResponse() as HttpWebResponse;
}
catch (WebException ex)
{
objResponse = ex.Response as HttpWebResponse;
}
finally
Run Code Online (Sandbox Code Playgroud)
WebException具有您想要的所有信息的响应.
当服务器关闭或无法访问时,您将收到超时异常。我知道处理这个问题的唯一方法是使用 try/catch。
我很确定大多数错误(401/404/501)都是这种情况,所以:不,您不能忽略(防止)异常,但您必须处理它们。它们是获取您的应用程序正在寻找的大部分 StatusCodes 的唯一方法。