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?

whlk
fonte

Respostas:

211

Isso retornará o intvalor:

response.getStatusLine().getStatusCode()
Robby Pond
fonte
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){
...
}
NickUnuchek
fonte