2010-03-17 23 views

risposta

8

È abbastanza simile in Java. Hai solo bisogno di valutare il codice di risposta HTTP:

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

Un esempio più completo può essere trovato here.

+1

Volevo solo sottolineare che alcuni siti Web non restituiscono effettivamente un codice di stato 404, ma piuttosto reindirizzano a una pagina di errore personalizzata (e restituiscono 200 riusciti). Questo è un cattivo comportamento, ma vale la pena assicurarsi che il sito su cui si sta testando non stia servendo questi 404 "soft". – Kris

+0

1) Si consiglia di rilevare 'UnknownHostException' e' FileNotFoundException' sul metodo 'openConnection()' (entrambi solo 'IOException'). 2) Si vuole anche lanciare 'URLConnection' su' HttpURLConnection' per poter chiamare il metodo 'getResponseCode()'. E @Kris: un reindirizzamento risulterebbe in un 301 o 302 che è necessario gestire in qualsiasi modo. Ad esempio, l'URL potrebbe essere stato aggiornato. – BalusC

+0

Anche se il file è abbastanza grande, finirai per scaricare l'intero contenuto per verificarne l'esistenza. Se emetti una richiesta HEAD anziché una GET, otterrai un chilometraggio migliore. –

4

Contribuire a una versione pulita che è più facile da copiare e incollare.

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 
} 
Problemi correlati