Jaka jest najszybsza metoda uzyskiwania statusu adresów URL za pomocą HttpClient? Nie chcę pobierać strony/pliku, chcę tylko wiedzieć, czy strona/plik istnieje? (Jeśli jest to przekierowanie Chcę, aby śledzono przekierowanie)Jaki jest najszybszy sposób uzyskania kodu statusu adresu URL za pomocą HttpClient
7
A
Odpowiedz
6
Użyj połączenia HEAD. Jest to po prostu wywołanie GET, w którym serwer nie zwraca ciała. Przykład z ich dokumentacją:
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
Można użyć:
HeadMethod head = new HeadMethod("http://www.myfootestsite.com");
head.setFollowRedirects(true);
// Header stuff
Header[] headers = head.getResponseHeaders();
Czy upewnij się, że twój serwer obsługuje polecenia głowy.
Patrz punkt 9.4 w HTTP 1.1 Spec
0
Można uzyskać te informacje z 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
Oto jak uzyskać kod stanu z HttpClient, które bardzo lubię:
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;
}
Powiązane problemy
- 1. Kodowanie adresu URL za pomocą kodu Swift
- 2. Jaki jest najszybszy sposób aktualizacji istniejących rekordów za pomocą sekwencji?
- 3. .NET: Sprawdź kod statusu odpowiedzi adresu URL?
- 4. Jaki jest najprostszy sposób wywoływania adresu URL GET Http za pomocą Delphi?
- 5. Sposób kodowania adresu URL kodu NSString
- 6. Jaki jest najszybszy sposób na uzyskanie nazwy domeny/hosta z adresu URL?
- 7. Jaki jest najlepszy sposób uzyskania aktualnego adresu URL w Spring MVC?
- 8. Zmiana adresu URL za pomocą html select
- 9. Pobierz obraz z adresu URL za pomocą kodu php?
- 10. Jaki jest najprostszy sposób wywołania adresu URL POST HTTP za pomocą Delphi?
- 11. Jaki jest najlepszy sposób na przechowywanie wartości adresu URL za pomocą MySQL?
- 12. Najszybszy sposób uzyskania zakresu wierszy Excela
- 13. Jak zezwolić routerowi na reagowanie za pomocą kodu statusu 404?
- 14. Najszybszy sposób na pobranie nazwy domeny/hosta za pomocą javascript
- 15. Zapobieganie manipulacjom adresu URL za pomocą MVC?
- 16. Ładowanie dynamicznego adresu URL za pomocą modalnego
- 17. Java - Najszybszy sposób sprawdzenia, czy URL istnieje
- 18. Jaki jest najszybszy sposób przekonwertowania wartości float [] na bajt []?
- 19. Najszybszy sposób uzyskania ostatniej znaczącej pozycji bitu w ulongu (C#)?
- 20. Jaki jest najlepszy sposób pobrania pliku za pomocą urllib3
- 21. Jaki jest najszybszy sposób na sprawdzenie, czy obiekt jest IEnumerable?
- 22. Jaki jest najszybszy sposób na załadowanie danych w Matlab
- 23. Najszybszy sposób budowania żądania XML za pomocą jQuery
- 24. Utwórz hiperłącze zewnętrznego adresu URL za pomocą JasperReports
- 25. Jak wykryć zmiany adresu URL za pomocą jQuery
- 26. Jaki jest najszybszy sposób sortowania wielu lokalizacji na odległość?
- 27. Kodowanie za pomocą HttpClient w .NET 4.5
- 28. Android: Jaki jest najszybszy sposób na załadowanie kilku bitmap/kciuków za pośrednictwem http?
- 29. Zdobądź część adresu URL
- 30. Parsowanie parametrów adresu URL za pomocą routerów Backbone - przykłady regex
Dziękujemy za podanie przykładu CloseableHttpResponse. "404" jest jednak trochę magiczną liczbą - można zamiast tego użyć parametru Apache HttpStatus klasy (sl.getStatusCode()) { case HttpStatus.SC_CREATED: return false; default: return true; } –