can I check if a file exists at a URL?posso verificare se esiste un file in un URL?
Questo collegamento è molto buono per C#, che dire di java. Ho serach ma non ho trovato una buona soluzione.
can I check if a file exists at a URL?posso verificare se esiste un file in un URL?
Questo collegamento è molto buono per C#, che dire di java. Ho serach ma non ho trovato una buona soluzione.
È 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.
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
}
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
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
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. –