Qual è il metodo più veloce per ottenere lo stato di URL utilizzando HttpClient? Non voglio scaricare la pagina/il file, voglio solo sapere se la pagina/il file esiste? (Se si tratta di un reindirizzamento, desidero che segua il reindirizzamento)Qual è il modo più rapido per ottenere un codice di stato degli URL utilizzando HttpClient
7
A
risposta
6
Utilizzare la chiamata HEAD. È fondamentalmente una chiamata GET in cui il server non restituisce un corpo. Esempio da loro documentazione:
HeadMethod head = new HeadMethod("http://jakarta.apache.org");
// execute the method and handle any error responses.
...
// Retrieve all the headers.
Header[] headers = head.getResponseHeaders();
// Retrieve just the last modified header value.
String lastModified = head.getResponseHeader("last-modified").getValue();
0
È possibile utilizzare:
HeadMethod head = new HeadMethod("http://www.myfootestsite.com");
head.setFollowRedirects(true);
// Header stuff
Header[] headers = head.getResponseHeaders();
Facciamo in modo che il server web supporta il comando HEAD.
vedi sezione 9.4 nella HTTP 1.1 Spec
0
È possibile ottenere queste informazioni con java.net.HttpURLConnection
:
URL url = new URL("http://stackoverflow.com/");
URLConnection urlConnection = url.openConnection();
if (urlConnection instanceof HttpURLConnection) {
int responseCode = ((HttpURLConnection) urlConnection).getResponseCode();
switch (responseCode) {
case HttpURLConnection.HTTP_OK:
// HTTP Status-Code 302: Temporary Redirect.
break;
case HttpURLConnection.HTTP_MOVED_TEMP:
// HTTP Status-Code 302: Temporary Redirect.
break;
case HttpURLConnection.HTTP_NOT_FOUND:
// HTTP Status-Code 404: Not Found.
break;
}
}
8
Ecco come ottengo il codice di stato da HttpClient, che mi piace molto:
public boolean exists(){
CloseableHttpResponse response = null;
try {
CloseableHttpClient client = HttpClients.createDefault();
HttpHead headReq = new HttpHead(this.uri);
response = client.execute(headReq);
StatusLine sl = response.getStatusLine();
switch (sl.getStatusCode()) {
case 404: return false;
default: return true;
}
} catch (Exception e) {
log.error("Error in HttpGroovySourse : "+e.getMessage(), e);
} finally {
try {
response.close();
} catch (Exception e) {
log.error("Error in HttpGroovySourse : "+e.getMessage(), e);
}
}
return false;
}
Problemi correlati
- 1. HttpClient ottenere il codice di stato
- 2. In ASP.NET, qual è il modo più rapido per ottenere l'URl di base per una richiesta?
- 3. Qual è il modo più rapido per moltiplicare più celle per un altro numero?
- 4. Qual è il modo più rapido per aggiungere più viste a un LinearLayout?
- 5. Qual è il modo più semplice/veloce per scoprire quando è stato creato un ramo git?
- 6. Qual è un modo più rapido per cercare un valore in un elenco di tuple?
- 7. Qual è il modo più rapido per trovare un file in Zend Studio per Eclipse?
- 8. Qual è il modo più rapido per un programmatore Ruby di prendere Python?
- 9. Qual è il modo più rapido per cancellare un blocco di memoria (o una superficie SDL)?
- 10. Qual è il modo più efficiente per eseguire questo codice?
- 11. Qual è il modo più veloce per ottenere più copie di un albero in python?
- 12. Qual è il modo più semplice per visualizzare httpServletResponse.sendError (403, "Il mio messaggio") Stato da JSTL
- 13. Qual è il modo più rapido per confrontare le impostazioni IIS di due server?
- 14. Qual è il modo più efficiente per ordinare un NSSet?
- 15. Qual è il modo più rapido e idiomatico di mutare più campi della struttura contemporaneamente?
- 16. Qual è il modo più pulito per ottenere il checksum di un array multidimensionale?
- 17. Qual è il modo più rapido per controllare in modo programmatico la ben formata dei file XML in C#?
- 18. Qual è il modo più rapido per importare record da 60 m in SQL
- 19. Qual è un buon modo per ottenere il nome file da un URL in Ruby?
- 20. Qual è il modo più rapido per inserire/aggiornare gli elementi std :: unordered_map senza usare if?
- 21. Ottenere il codice di stato HTTP da più URL usando curl_multi?
- 22. Qual è il modo più semplice in Javascript per ottenere solo il segno di un numero?
- 23. Qual è il modo più semplice per creare un sito web per la prenotazione degli appuntamenti?
- 24. il modo più rapido per recuperare dinamicamente le dimensioni dell'immagine
- 25. Modo rapido per effettuare più chiamate AJAX
- 26. Il modo migliore per ottenere URL multilingue?
- 27. Esiste un "modo più rapido" per costruire stringhe in Java?
- 28. Qual è il modo più rapido per HTTP GET in Python?
- 29. Qual è il modo più efficiente per filtrare un DataFrame
- 30. modo più rapido per generare bit casuali
Grazie per aver fornito un esempio CloseableHttpResponse. "404" è una specie di numero magico - si potrebbe invece usare la classe HttpStatus di Apache switch (sl.getStatusCode()) { case HttpStatus.SC_CREATED: return false; predefinito: return true; } –