2010-03-17 52 views

Trả lời

8

Nó khá giống với Java. Bạn chỉ cần đánh giá mã Phản hồi HTTP:

final URL url = new URL("http://some.where/file.html"); 
url.openConnection().getResponseCode(); 

Ví dụ hoàn chỉnh hơn có thể tìm thấy here.

+1

Tôi chỉ muốn lưu ý rằng một số trang web sẽ không thực sự trả về mã trạng thái 404 mà chuyển hướng đến trang lỗi tùy chỉnh (và trả về 200 thành công). Đây là hành vi xấu, nhưng nó là giá trị đảm bảo rằng các trang web bạn đang thử nghiệm chống lại không phải là phục vụ lên những "mềm" 404. – Kris

+0

1) Bạn có thể muốn bắt 'UnknownHostException' và' FileNotFoundException' trên phương thức 'openConnection()' (cả hai chỉ là 'IOException'). 2) Bạn cũng muốn bỏ 'URLConnection' xuống' HttpURLConnection' để có thể gọi phương thức 'getResponseCode()'. Và @ Kris: chuyển hướng sẽ dẫn đến 301 hoặc 302 mà bạn cần xử lý theo bất kỳ cách nào. Ví dụ: URL có thể đã được cập nhật. – BalusC

+0

Ngoài ra nếu tệp khá lớn, bạn sẽ tải xuống toàn bộ nội dung để kiểm tra sự tồn tại. Nếu bạn đưa ra yêu cầu HEAD thay vì GET, bạn sẽ nhận được số dặm tốt hơn. –

4

Đóng góp phiên bản sạch sẽ dễ dàng sao chép và dán.

try { 
    final URL url = new URL("http://your/url"); 
    HttpURLConnection huc = (HttpURLConnection) url.openConnection(); 
    int responseCode = huc.getResponseCode(); 
    // Handle response code here... 
} catch (UnknownHostException uhe) { 
    // Handle exceptions as necessary 
} catch (FileNotFoundException fnfe) { 
    // Handle exceptions as necessary 
} catch (Exception e) { 
    // Handle exceptions as necessary 
} 
Các vấn đề liên quan