2016-05-21 8 views
0

応答がすべて成功したが、サーバから101エラーが発生したときに実行時例外がスローされる: "public ... TestResponse ()にargs "がない場合、問題は明らかにjsonを逆シリアル化できないことですが、エラー応答を受け取ったときに" TestResponse "の代わりにエラーオブジェクトを使用する方法はありますか?Immutablesを使用したRetrofitは、サーバがエラーを返すときに実行時例外をスローする

レトロフィットインタフェース:

@Headers("Accept: application/json") 
@POST("api") 
Observable<TestResponse> test(); 

Responseオブジェクト:

@Value.Immutable() 
@Gson.TypeAdapters 
public abstract class TestResponse { 
    public abstract String success(); 
} 

レスポンス成功したJSON:

{"success" : "response successful"} 

レスポンスエラーJSON:

[{"error":{"type":101,"description":"not authorized"}}] 

答えて

1

レトロフィットコールバッククラスを拡張し、エラー処理のためにカスタムコールバックを作成する必要があります。カスタムCallbackクラスでは、errorBodyを任意のオブジェクト型に逆シリアル化できます。このtutorialには、これを使用してエラー処理を行う方法が説明されています。

関連する問題