Android: como obter o código de status de uma solicitação HttpClient


90

Quero fazer download de um arquivo e preciso verificar o código de status da resposta (ou seja HTTP /1.1 200 OK). Este é um recorte do meu código:

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

Como obtenho o código de status da resposta?

Respostas:


211

Isso retornará o intvalor:

response.getStatusLine().getStatusCode()

30
Em seguida, você pode comparar com os códigos de status HTTP developer.android.com/reference/org/apache/http/HttpStatus.html
thanhbinh84

2
Visto que HttpStatus é uma classe obsoleta, existe uma classe melhor para ser usada?
gaara87

@AkashRamani - Sim, basta usar o método HttpUrlConnection: .getResponseCode ()
Nikita Kurtin

1
@NikitaKurtin certeza que retorna um inteiro, mas como você saberia qual é o status de resposta Http do código de resposta real? Como você saberia se foi bem-sucedido? Eu não quero dizer if(getResponseCode()==200). Prefiro dizer if(getResponseCode()==HttpStatus.RESPONSE_OK)ou algo assim.
gaara87 01 de

3
@AkashRamani, sim, tem constantes constantes dentro da classe para isso. por exemplo HttpURLConnection.HTTP_OK (200 -> http ok status) HttpURLConnection.HTTP_NOT_FOUND (404 -> não encontrado), etc. lista completa de constantes disponíveis que você pode encontrar em sua referência de classe: developer.android.com/reference/java/ net /…
Nikita Kurtin

9
if (response.getStatusLine().getStatusCode()== HttpsURLConnection.HTTP_OK){
...
}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.