2015-04-29 4 views
30

Обычно я для проверки серверов различных ответов коды в моем RestClient классе, используя org.apache.http.HttpStatus класс, как в следующем примере:HttpStatus становится устаревшим в уровне API 22

if (HttpStatus.SC_OK == restClient.getResponseCode()) { 
      //200 OK (HTTP/1.0 - RFC 1945) 
      return true; 
} else if (HttpStatus.SC_BAD_GATEWAY == restClient.getResponseCode()){ 
      //502 Bad Gateway (HTTP/1.0 - RFC 1945) 
      return false; 
} 

Но в последнее время класса стал устаревшими с API уровень 22 по официальному documentation

Этот интерфейс был устаревшим в уровне API 22. Пожалуйста, используйте openConnection() instea д. Пожалуйста, посетите этот webpage для получения дополнительной информации.

Но используя OpenConnection() метод для меня не имеет никакого смысла.

Мой вопрос: Есть ли какой-либо другой способ сделать те же функции без необходимости жестко кодировать все ответы на код в приложении?

Заранее спасибо.

+0

С HttpClient устарела, пожалуйста, используйте другие клиенты для HTTP связи. Я не вижу проблем с наличием кодов статуса, определенных в вашем коде. –

+1

@IgorFilippov, перечисляющий все возможные «CodeResponses», изобретает колесо. Проверьте принятый ответ, чтобы понять, что я имею в виду: –

ответ

64

вы можете бросить возвращенное значение openConnection в HttpURLConnection и использовать getResponseCode() для получения кода ответа

HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 
final int responseCode = urlConnection.getResponseCode(); 
if (responseCode == HttpURLConnection.HTTP_OK) { 

} else if (responseCode == HttpURLConnection.HTTP_BAD_GATEWAY) { 

} 

HttpURLConnection.getResponseCode() документация here

+6

'HttpURLConnection.HTTP_OK' именно то, что я искал. Большое спасибо –

+0

приветствуются – Blackbelt

Смежные вопросы