2010-03-17 25 views

Respuesta

8

Es bastante similar en Java. Sólo tiene que evaluar el código de respuesta HTTP:

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

Un ejemplo más completo se puede encontrar here.

+1

Solo quería señalar que algunos sitios web en realidad no devolverán un código de estado 404, sino que lo redireccionarán a una página de error personalizada (y devolverán 200 Exitosos). Esto es un mal comportamiento, pero vale la pena asegurarse de que el sitio que está probando no esté publicando estos 404 "blandos". – Kris

+0

1) Es posible que desee capturar 'UnknownHostException' y' FileNotFoundException' en el método 'openConnection()' (ambos simplemente 'IOException'). 2) También desea convertir 'URLConnection' en' HttpURLConnection' para poder llamar al método 'getResponseCode()'. Y @Kris: una redirección resultaría en un 301 o 302 que debes manejar de cualquier forma. La URL podría, por ejemplo, haber sido actualizada. – BalusC

+0

Además, si el archivo es bastante grande, terminará descargando todo el contenido para verificar la existencia. Si emite una solicitud HEAD en lugar de un GET obtendrá un mejor millaje. –

4

Contribuir con una versión limpia que es más fácil de copiar y pegar.

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 
} 
Cuestiones relacionadas