C# 检查HTTP响应

C# 检查HTTP响应,c#,C#,当web服务器返回错误时,我没有及时捕获错误:(407) 我的应用程序在以下几点中断 //Get Response var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 我正在验证对延迟的响应,如何在系统不崩溃的情况下测试响应 //Get Response var httpResponse = (HttpWebResponse)httpWebRequest.

当web服务器返回错误时,我没有及时捕获错误:(407) 我的应用程序在以下几点中断

           //Get Response
        var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
我正在验证对延迟的响应,如何在系统不崩溃的情况下测试响应

   //Get Response
        var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();

        if (httpResponse.StatusCode == HttpStatusCode.OK)
        {
            Do something 
        }

您可以捕获异常:

try 
{
    var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
}
catch (WebException ex) 
{
    if((ex.Response as System.Net.HttpWebResponse).StatusCode == ProxyAuthenticationRequired)
    {
        // Do Something
    }
}

您必须使用try-catch-finally块来验证响应 作为

我认为您还应该编写以下代码以避免异常

try{
HttpWebRequest webRequest = WebRequest.Create(url) as HttpWebRequest;
webRequest.Proxy = WebRequest.DefaultWebProxy;
webRequest.Credentials = new NetworkCredential("user", "password", "domain");
webRequest.Proxy.Credentials = new NetworkCredential("user", "password", "domain");
}catch(WebException ex){}
在web.config上使用

<system.net>
    <defaultProxy useDefaultCredentials="true" >
    </defaultProxy>
</system.net>


为避免异常

GetResponse调用是否引发异常?如果“我的应用程序中断”意味着您有,那么您可以使用来处理它。我更喜欢WebException而不是exception,然后检查异常代码。
try{
HttpWebRequest webRequest = WebRequest.Create(url) as HttpWebRequest;
webRequest.Proxy = WebRequest.DefaultWebProxy;
webRequest.Credentials = new NetworkCredential("user", "password", "domain");
webRequest.Proxy.Credentials = new NetworkCredential("user", "password", "domain");
}catch(WebException ex){}