2015-04-29 30 views
30

Zwykle stosowany w celu sprawdzenia serwera różnych odpowiedzi kod w moim RestClient klasy przy użyciu klasy org.apache.http.HttpStatus jak w poniższym przykładzie:httpStatus stają się przestarzałe w poziomie 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; 
} 

Ale ostatnio klasa stała przestarzałe od API poziom 22 według oficjalnej documentation

tego interfejsu została zaniechana na poziomie API 22. Proszę używać openConnection() instea re. Proszę odwiedzić ten webpage w celu uzyskania dalszych szczegółów.

Ale użycie metody OpenConnection() dla mnie nie ma sensu.

Moje pytanie brzmi: Czy istnieje jakikolwiek inny sposób na wykonanie tej samej funkcjonalności bez konieczności samodzielnego zakodowania wszystkich odpowiedzi kodu w aplikacji?

Z góry dziękuję.

+0

Od HttpClient jest przestarzała, proszę korzystać z innych klientów do komunikacji http. Nie widzę problemu ze zdefiniowaniem kodów statusu w kodzie. –

+1

@IgorFilippov wymieniając wszystkie możliwe "Odwołania do kodu" wymyśla koło. Sprawdź akceptowaną odpowiedź, aby zrozumieć, co mam na myśli: –

Odpowiedz

64

można oddać zwróconą wartość openConnection do HttpURLConnection i używać getResponseCode() pobrać kod odpowiedzi

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

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

} 

HttpURLConnection.getResponseCode() dokumentacji jest here

+6

'HttpURLConnection.HTTP_OK' jest dokładnie tym, czego szukałem. Wielkie dzięki –

+0

nie ma za co – Blackbelt