Android: Comment obtenir le code d'état d'une requête HttpClient

90

Je souhaite télécharger un fichier et je dois vérifier le code d'état de la réponse (c'est-à-dire HTTP /1.1 200 OK). Ceci est un extrait de mon code:

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

Comment obtenir le code d'état de la réponse?

whlk
la source

Réponses:

211

Cela renverra la intvaleur:

response.getStatusLine().getStatusCode()
Robby Pond
la source
30
Ensuite, vous pouvez comparer avec les codes de statut HTTP developer.android.com/reference/org/apache/http/HttpStatus.html
thanhbinh84
2
Puisque HttpStatus est une classe obsolète, y a-t-il une meilleure classe à utiliser?
gaara87
@AkashRamani - Oui, utilisez simplement la méthode HttpUrlConnection: .getResponseCode ()
Nikita Kurtin
1
@NikitaKurtin est sûr que cela renvoie un entier, mais comment sauriez-vous quel est le statut de réponse Http du code de réponse réel? Comment sauriez-vous si c'est réussi? Je ne veux pas dire if(getResponseCode()==200). Je préfère dire if(getResponseCode()==HttpStatus.RESPONSE_OK)ou quelque chose comme ça.
gaara87
3
@AkashRamani, Oui, il a des constantes int dans la classe pour cela. par exemple HttpURLConnection.HTTP_OK (200 -> http ok status) HttpURLConnection.HTTP_NOT_FOUND (404 -> not found), etc. liste complète des constantes disponibles que vous pouvez trouver dans sa référence de classe: developer.android.com/reference/java/ net /…
Nikita Kurtin
9
if (response.getStatusLine().getStatusCode()== HttpsURLConnection.HTTP_OK){
...
}
NickUnuchek
la source