2015-04-29 5 views
30

Normalerweise habe ich für den Server unterschiedliche Code Antworten in meiner RestClient Klasse mit der org.apache.http.HttpStatus Klasse wie das folgende Beispiel zu überprüfen:Httpstatus in API-Ebene weiterentwickelt werden 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; 
} 

Aber vor kurzem die Klasse wurde seit API veraltet 22 Level nach dem offiziellen documentation

Diese Schnittstelle wurde in API-Ebene veraltet 22. Bitte benutzen Sie openConnection() instea d. Bitte besuchen Sie diese webpage für weitere Details.

Aber mit OpenConnection() Methode für mich macht keinen Sinn.

Meine Frage ist: Gibt es eine andere Möglichkeit, die gleiche Funktionalität zu tun, ohne alle Code-Antworten von mir selbst in der Anwendung hardcodieren zu müssen?

Vielen Dank im Voraus.

+0

abrufen Da Httpclient ist veraltet, bitte nutzen andere Kunden für die HTTP-Kommunikation. Ich sehe kein Problem mit Statuscodes in Ihrem Code definiert. –

+1

@IgorFilippov Auflistung aller möglichen 'CodeResponses' erfindet das Rad neu. Schau dir die akzeptierte Antwort an, um zu verstehen, was ich meine –

Antwort

64

können Sie den Rückgabewert von openConnection-HttpURLConnection gegossen und verwenden getResponseCode() Antwortcode

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

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

} 

HttpURLConnection.getResponseCode() Dokumentation ist here

+6

'HttpURLConnection.HTTP_OK' ist genau das, was ich gesucht habe. Vielen Dank –

+0

Sie sind willkommen – Blackbelt