2013-03-08 29 views
10

HTML sayfaları almak ve bir dize olarak döndürmek için bu basit işlevi var; bazen bir 404 alsam da. Sadece HTML dizgisini yalnızca istek başarılı olursa iade edebilirim ve bir 404 veya başka bir hata durum kodu olduğunda BadRequest gibi bir şey döndürürüm?Web Tepki durum kodu

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

WebException'ı yakalayın, neyin döndüğünü görün .. –

cevap

23

Sen WebException yakalamak olabilir: daha uygun olacaktır Tabii

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

çağıran kod bu istisnayı yakalamak ve hatta html ayrıştırmak girişimi yerine try/catch koyarak değil fonksiyonun kendisinde.

İlgili konular