Android: как получить код состояния запроса HttpClient

90

Я хочу загрузить файл и мне нужно проверить код статуса ответа (т.е. HTTP /1.1 200 OK). Это фрагмент моего кода:

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

Как мне получить статус-код ответа?

белый
источник

Ответы:

211

Это вернет intзначение:

response.getStatusLine().getStatusCode()
Робби Пруд
источник
30
Затем вы можете сравнить с кодами состояния HTTP developer.android.com/reference/org/apache/http/HttpStatus.html
thanhbinh84
2
Поскольку HttpStatus является устаревшим классом, можно ли использовать лучший класс?
gaara87
@AkashRamani - Да, просто используйте метод HttpUrlConnection: .getResponseCode ()
Никита Куртин
1
@NikitaKurtin уверен, что возвращает целое число, но как узнать, каков фактический статус Http-ответа кода ответа? Как вы узнаете, что он успешен? Я не хочу говорить if(getResponseCode()==200). Я лучше скажу if(getResponseCode()==HttpStatus.RESPONSE_OK)или что-то в этом роде.
gaara87 01
3
@AkashRamani, Да, для этого внутри класса есть int Constants. например HttpURLConnection.HTTP_OK (200 -> http ok status) HttpURLConnection.HTTP_NOT_FOUND (404 -> not found) и т. д. полный список доступных констант вы можете найти в справочнике по классу: developer.android.com/reference/java/ net /…
Никита Куртин
9
if (response.getStatusLine().getStatusCode()== HttpsURLConnection.HTTP_OK){
...
}
NickUnuchek
источник