2016-08-09 3 views
-1

나는 시간에 오류를 잡는 아니에요, 웹 서버가 오류를 반환 할 때 님의 말 (407) 내 응용 프로그램 나누기 다음과 같은 점확인 HTTP 응답

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

내가 응답을 확인하는 오전을, 시스템 충돌없이 응답을 테스트하려면 어떻게해야합니까?

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

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

이하는 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에이

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

2

당신은 예외를 잡을 수 :

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

예외 대신 WebException을 선호하고 예외 코드를 확인하십시오. –

+0

당신 말이 맞아요. 수정 됨 :) –