Android: come ottenere il codice di stato di una richiesta HttpClient


90

Voglio scaricare un file e devo controllare il codice di stato della risposta (cioè HTTP /1.1 200 OK). Questo è un frammento del mio codice:

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

Come ottengo il codice di stato della risposta?

Risposte:


211

Questo restituirà il intvalore:

response.getStatusLine().getStatusCode()

30
Quindi puoi confrontare con i codici di stato HTTP developer.android.com/reference/org/apache/http/HttpStatus.html
thanhbinh84

2
Poiché HttpStatus è una classe deprecata, esiste una classe migliore da utilizzare?
gaara87

@AkashRamani - Sì, usa il metodo HttpUrlConnection: .getResponseCode ()
Nikita Kurtin

1
@NikitaKurtin sicuro che restituisce un numero intero ma come fai a sapere qual è lo stato di risposta HTTP del codice di risposta effettivo? Come fai a sapere se ha successo? Non voglio dire if(getResponseCode()==200). Preferisco dire if(getResponseCode()==HttpStatus.RESPONSE_OK)o qualcosa del genere.
gaara87

3
@ AkashRamani, Sì, ha costanti int all'interno della classe per questo. ad esempio HttpURLConnection.HTTP_OK (200 -> http ok status) HttpURLConnection.HTTP_NOT_FOUND (404 -> non trovato), ecc. elenco completo delle costanti disponibili che puoi trovare nella sua classe di riferimento: developer.android.com/reference/java/ netto /…
Nikita Kurtin

9
if (response.getStatusLine().getStatusCode()== HttpsURLConnection.HTTP_OK){
...
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.