2013-03-08 2 views
10

HTML 페이지를 가져 와서 문자열로 반환하는이 간단한 함수가 있습니다. 때때로 404를 얻지 만 요청이 성공한 경우에만 HTML 문자열을 반환 할 수 있으며 404 또는 다른 오류 상태 코드 인 경우 BadRequest과 같은 것을 반환 할 수 있습니까?웹 응답 상태 코드

public static string GetPageHTML(string link) 
{ 
    using (WebClient client= new WebClient()) 
    { 
     return client.DownloadString(link); 
    } 
} 
+2

반환 값이 무엇인지'WebException'을 잡아라. –

답변

23

당신은 WebException이 잡을 수 있습니다 : 그것은 더 적합 할 것입니다 물론

public static string GetPageHTML(string link) 
{ 
    try 
    { 
     using (WebClient client = new WebClient()) 
     { 
      return client.DownloadString(link); 
     } 
    } 
    catch (WebException ex) 
    { 
     var statusCode = ((HttpWebResponse)ex.Response).StatusCode; 
     return "An error occurred, status code: " + statusCode; 
    } 
} 

가 호출 코드에서이 예외를 잡을 심지어 HTML을 구문 분석을 시도 대신 시도/캐치를 넣어하지 않도록를 함수 자체에서.

관련 문제