2016-06-20 25 views
0

Gibt es eine Möglichkeit, 400 bis 599 HTTP-Status in der onFail() - Methode mit Retrofit 2.0 zu fangen? Immer wenn der Rest api 400,401 etc. zurückgibt, dann agiere wie 200 response und handle es am onSuccess(). Wie kann ich es erreichen?Retrofit 2.0 mit Fehlerantwort

+2

Schauen Sie sich diese Frage an: http://stackoverflow.com/questions/31808083/how-to-get-retrofit-success-responce-status-codes –

Antwort

3

Jedes Mal, wenn der Rest api kehrt 400.401 usw. dann wie 200 Antwort handeln nachzurüsten

onFailure nur im Falle eines Netzwerkfehlers aufgerufen wird, zum Beispiel ein IoException für den Fall, dass Sie keine Verbindung haben. Wenn der Server Ihre Anfrage bearbeiten kann, wird entweder im Erfolgsfall oder im Fehlerfall onResponse aufgerufen. Dort können Sie den Statuscode der Anfrage überprüfen und entsprechend handeln

+0

I Ich möchte nicht alle onResponse-Methoden überprüfen, indem ich if (response.body(). status == 200) schreibe. In Retrofit 1.9 das war gut. Was werde ich tun, um es zu erreichen? –

+1

haben eine BaseAbstract-Klasse, die die Überprüfung für Sie durchführt. Verwenden Sie dann das Vorlagenmuster, um zwei verschiedene Methoden aufzurufen (beide in der Basisklasse als abstrakt deklariert). – Blackbelt

+0

ich konnte Vorlagenmuster nicht verwenden, indem ich Nachrüstung verwendete. Können Sie bitte einen Code eingeben, um es zu erreichen? Vielen Dank –

Verwandte Themen