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?

Odpowiedzi:


211

To zwróci intwartość:

response.getStatusLine().getStatusCode()

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){
...
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.