Android: cómo obtener el código de estado de una solicitud HttpClient


90

Quiero descargar un archivo y necesito verificar el código de estado de respuesta (es decir HTTP /1.1 200 OK). Este es un recorte de mi código:

HttpGet httpRequest = new HttpGet(myUri);
HttpEntity httpEntity = null;
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(httpRequest);
...

¿Cómo obtengo el código de estado de la respuesta?

Respuestas:


211

Esto devolverá el intvalor:

response.getStatusLine().getStatusCode()

30
Luego, puede comparar con los códigos de estado HTTP developer.android.com/reference/org/apache/http/HttpStatus.html
thanhbinh84

2
Dado que HttpStatus es una clase obsoleta, ¿hay una clase mejor para usar?
gaara87

@AkashRamani - Sí, solo usa el método HttpUrlConnection: .getResponseCode ()
Nikita Kurtin

1
@NikitaKurtin seguro que devuelve un número entero, pero ¿cómo sabría cuál es el estado de respuesta Http del código de respuesta real? ¿Cómo sabría si tiene éxito? No quiero decirlo if(getResponseCode()==200). Prefiero decir if(getResponseCode()==HttpStatus.RESPONSE_OK)algo así.
gaara87

3
@AkashRamani, Sí, tiene int Constants dentro de la clase para eso. por ejemplo HttpURLConnection.HTTP_OK (200 -> http ok status) HttpURLConnection.HTTP_NOT_FOUND (404 -> no encontrado), etc. lista completa de constantes disponibles que puede encontrar en su referencia de clase: developer.android.com/reference/java/ net /…
Nikita Kurtin

9
if (response.getStatusLine().getStatusCode()== HttpsURLConnection.HTTP_OK){
...
}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.