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?

whlk
fuente

Respuestas:

211

Esto devolverá el intvalor:

response.getStatusLine().getStatusCode()
Estanque de Robby
fuente
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){
...
}
NickUnuchek
fuente