Android: jak uzyskać kod stanu żądania HttpClient

90

Chcę pobrać plik i muszę sprawdzić kod stanu odpowiedzi (tj HTTP /1.1 200 OK.). To jest fragment mojego kodu:

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

Jak uzyskać kod statusu odpowiedzi?

whlk
źródło

Odpowiedzi:

211

To zwróci intwartość:

response.getStatusLine().getStatusCode()
Robby Pond
źródło
30
Następnie możesz porównać z kodami stanu HTTP developer.android.com/reference/org/apache/http/HttpStatus.html
thanhbinh84
2
Ponieważ HttpStatus jest przestarzałą klasą, czy można użyć lepszej klasy?
gaara87
@AkashRamani - Tak, po prostu użyj metody HttpUrlConnection: .getResponseCode ()
Nikita Kurtin
1
@NikitaKurtin na pewno zwraca liczbę całkowitą, ale skąd możesz wiedzieć, jaki jest aktualny stan odpowiedzi HTTP w kodzie odpowiedzi? Skąd możesz wiedzieć, czy to się powiodło? Nie chcę mówić if(getResponseCode()==200). Wolałbym powiedzieć if(getResponseCode()==HttpStatus.RESPONSE_OK)czy coś w tym stylu.
gaara87
3
@AkashRamani, Tak, ma do tego stałe int wewnątrz klasy. na przykład HttpURLConnection.HTTP_OK (200 -> http ok status) HttpURLConnection.HTTP_NOT_FOUND (404 -> not found), etc .. pełna lista dostępnych stałych, które można znaleźć w referencji do jej klasy: developer.android.com/reference/java/ net /…
Nikita Kurtin
9
if (response.getStatusLine().getStatusCode()== HttpsURLConnection.HTTP_OK){
...
}
NickUnuchek
źródło