2013-03-08 62 views
10

Tôi có chức năng đơn giản này để nhận các trang HTML và trả về dưới dạng chuỗi; mặc dù đôi khi tôi nhận được 404. Làm cách nào để tôi chỉ trả lại chuỗi HTML nếu yêu cầu thành công và trả về một cái gì đó như BadRequest khi đó là 404 hoặc bất kỳ mã trạng thái lỗi nào khác?Mã trạng thái phản hồi web

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

Nắm bắt 'WebException' xem nội dung trả về .. –

Trả lời

23

Bạn có thể bắt 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; 
    } 
} 

Tất nhiên nó sẽ thích hợp hơn để bắt ngoại lệ này trong các mã gọi điện thoại và thậm chí không cố gắng để phân tích cú pháp html thay vì đặt try/catch trong chính hàm đó.

Các vấn đề liên quan