2
私が扱っているAPIは、成功と失敗に対して全く異なる応答を返します。改造成功とエラーコールバックでデシリアライズに異なるモデルを使用
成功:
{
"token":"asdfasdfhkAADBSKJBJBJKBJBK^%&BJBLLKHKJBXZ",
"email":"[email protected]",
"role":"admin"
}
失敗:
{
"name": "NotAuthenticated",
"message": "Invalid login.",
"code": 401,
"className": "not-authenticated"
}
私が改造するのは非常に新しいですし、呼び出しを行うために以下のコードを使用しています。
LoginRequest request = new LoginRequest(mobileNumber, password);
ApiInterface apiService = ApiClient.getClient().create(ApiInterface.class);
Call<LoginResponse> call = apiService.authenticateUser(request);
call.enqueue(new Callback<LoginResponse>() {
@Override
public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {
}
@Override
public void onFailure(Call<LoginResponse> call, Throwable t) {
}
});
あなたが見ることができるように、改造はsuccess
とfailure
の両方のためのサンプルResponseObject
を使用するように私を強制します。そして、私は失敗応答をpojoに変換することができません。
私はカスタムデシリアライズを見てきました。しかし、各要求に対してカスタムデシリアライザを作成すると、すぐに制御が外れることがあります。
助けてください。
あなたは 'errorBody'を探しています – EpicPandaForce
私は_failure_も200を返すと思いますか? –
いいえ、すべての失敗応答は400〜499の間のエラーコードを返します。 –