2016-08-09 8 views
-1

私は、Webサーバーがエラーを返したときに、時間内にエラーをキャッチしていないよ:(407) 私のアプリケーションの切断を、以下の点チェックHTTPレスポンス

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

で、私は後半への対応を検証しています、システムがクラッシュすることなくレスポンスをテストするにはどうすればよいですか?

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

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

例外を避けるために、この

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

を使用し、例外を投げるのGetResponseコールですか? –

+3

*「My application breaks」*が[例外](https://msdn.microsoft.com/en-us/library/ms173160.aspx)を持っている場合、['try/catch'](https ://msdn.microsoft.com/en-us/library/0yd65esw.aspx)を参照してください。 – Sinatr

答えて

1

あなたは私があなたにもコードには、以下の書くべきだと思う

try 
{ 
    var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 
} 
catch(WebException e) 
    { 
     Console.WriteLine("\r\nWeb Exception occurred : {0}",e.Status); 
    } 
catch(Exception e) 
{ 
    Console.WriteLine("Exception: {0}",e.Message); 
} 

} 
finally{ 
//code after checking http response 
} 

としてレスポンス を検証するためのブロック最終的にトライキャッチを使用する必要があります例外を避ける

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ファイルに

2

あなたは例外をキャッチすることができます

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

私は例外の代わりにWebExceptionを選び、例外コードをチェックします。 –

+0

あなたは正しいです。編集された:) –

関連する問題