2014-04-16 4 views
7

ich Retrofit bin mit meiner Backend-Kommunikation und darunter das Snippet meines Retrofit Aufruf:Retrofit ruft Ausfall() -Methode, auch wenn der Header-Statuscode 200

serverObject.createEvent(Utils.getAuthHeader(), params, new Callback<CreateEventResponse>() { 
     @Override 
     public void success(CreateEventResponse outputObj, retrofit.client.Response response) { 

      Log.d(TAG, outputObj.getTitle() + " is successfully created."); 
      setResult(Activity.RESULT_OK); 
      finish(); 
     } 

     @Override 
     public void failure(RetrofitError retrofitError) { 

      //Header status code 
      Log.e("failure", String.valueOf(retrofitError.getResponse().getStatus())); 
      Log.e("failure", String.valueOf(retrofitError.getResponse().getBody())); 

     } 
    }); 

Der obige Code druckt diese im Logcat :

04-16 16:26:11.751 25131-25131/com.android.myapp.app E/failure﹕ 200 
04-16 16:26:11.751 25131-25131/com.android.myapp.app E/failure﹕ null 

wer ist das möglich?

Kann jeder Körper helfen, warum passiert dies.

Auch habe ich setLogLevel(RestAdapter.LogLevel.FULL); gesetzt und so kann ich alle Werte in meinem logcat sehen. Meine Antwort vom Server richtig kommt aber warum ist Versagen() genannt zu werden?

Bitte helfen!

Vielen Dank im Voraus.

Antwort

10

Wahrscheinlich Retrofit wirft eine Ausnahme, die Call-Fehler-Methode. Verwenden Sie:

retrofitError.getCause() 

oder machen Sie ein Debugging. Sie registrieren Rückruf mit CreateEventResponse, also wenn Körper null ist, konnten Sie parse Ausnahme gefangen haben.

+0

ich werde dies versuchen und updaten – AabidMulani

+0

Ok. Ich habe die Antwort aktualisiert. – piobab

+3

gab es Problem in meinem GSON-Datenmodell – AabidMulani