¿Cuál es el método más rápido para obtener un estado de URL usando HttpClient? No deseo descargar la página/archivo, solo quiero saber si la página/archivo existe (si es una redirección, quiero que siga la redirección)¿Cuál es la forma más rápida de obtener un código de estado de URL usando HttpClient
7
A
Respuesta
6
Utilice la llamada HEAD. Básicamente es una llamada GET donde el servidor no devuelve un cuerpo. Ejemplo de su documentación:
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
Usted puede utilizar:
HeadMethod head = new HeadMethod("http://www.myfootestsite.com");
head.setFollowRedirects(true);
// Header stuff
Header[] headers = head.getResponseHeaders();
se cerciora de que su servidor web es compatible con el comando HEAD.
, véase la Sección 9.4 en el HTTP 1.1 Spec
0
Puede obtener esta información 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
Aquí es cómo consigo el código de estado de HttpClient, que me gusta mucho:
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;
}
Cuestiones relacionadas
- 1. HttpClient obtener el código de estado
- 2. En ASP.NET, ¿cuál es la forma más rápida de obtener la URL base para una solicitud?
- 3. ¿Cuál es la forma más rápida de obtener copias múltiples de un árbol en python?
- 4. ¿Cuál es la forma más rápida de obtener una referencia ObjectContext de un objeto entidad?
- 5. cuál es la forma más rápida de obtener el submapa de un mapa
- 6. ¿Cuál es la forma más rápida de obtener el valor absoluto de un número
- 7. ¿Cuál es la forma más rápida de obtener un elemento dom?
- 8. ¿Cuál es la forma más rápida de grabar varios archivos?
- 9. Java: ¿Cuál es la forma más rápida de inyectar campos usando la reflexión?
- 10. En Java, ¿cuál es la forma más rápida de obtener la hora del sistema?
- 11. ¿Forma más rápida de comunicarse usando TcpClient?
- 12. ¿Cuál es la mejor manera de obtener un código de respuesta HTTP de una URL?
- 13. La forma más rápida de obtener el estado de git en bash
- 14. La forma más rápida de obtener el icono de shell
- 15. ¿Forma más rápida de obtener múltiples FileInfo?
- 16. Forma más rápida de obtener el tipo de contenido
- 17. ¿Cuál es la forma más rápida de que un programador de Ruby elija Python?
- 18. ¿Cuál es la forma más rápida de obtener la media de un conjunto de números desde la línea de comando?
- 19. ¿Cuál es la forma más rápida de saltar a un constructor (es) en una clase?
- 20. al codificar cuál es la forma más rápida de determinar si un tipo es IDisposable
- 21. ¿Cuál es la forma más rápida de un verdadero sinatra (ruby/rack) after_filter?
- 22. ¿Cuál es la forma más rápida de probar si un objeto es IEnumerable?
- 23. ¿Cuál es la forma más rápida de acceder al código nativo desde Java?
- 24. ¿Cuál es la forma más rápida de calcular un cierre épsilon?
- 25. ¿Cuál es la forma más rápida de compilar archivos Scala usando maven?
- 26. ¿Cuál es la forma más rápida de calcular la potencia grande de 2 módulo un número
- 27. ¿Cuál es la forma más sencilla de llamar a Http GET url usando Delphi?
- 28. La forma más rápida de escribir un vector STL grande en un archivo usando STL
- 29. En httpclient, ¿cuál es la forma más elegante/correcta de convertir HttpEntity en una cadena?
- 30. ¿Cuál es la forma más rápida de generar un conjunto único en .net 2
Gracias por proporcionar un ejemplo de CloseableHttpResponse. "404" es una especie de número mágico: en su lugar, podría utilizar la clase HttpStatus de Apache switch (sl.getStatusCode()) { caso HttpStatus.SC_CREATED: return false; predeterminado: return true; } –