2013-03-08 4 views
10

Ich habe diese einfache Funktion, um HTML-Seiten zu erhalten und sie als String zurückzugeben; obwohl ich manchmal eine 404 erhalte. Wie kann ich die HTML-Zeichenkette nur zurückgeben, wenn die Anfrage erfolgreich war, und etwas wie BadRequest zurückgeben, wenn es ein 404 oder irgendein anderer Fehlerstatuscode ist?Web Response Statuscode

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

Fangen Sie die 'WebException' ab, was zurückkommt .. –

Antwort

23

Sie können die WebException fangen:

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; 
    } 
} 

Natürlich ist es sinnvoller wäre, diese Ausnahme in dem anrufenden Code zu fangen und nicht einmal versuchen, die HTML zu analysieren anstatt, die try/catch in der Funktion selbst.

Verwandte Themen