4

Retrofit と OKHttp を使用して Android で Robospice を使用しています。Robospice RequestListener を使用してアクティビティに返された応答で、すべてがうまく機能します。問題は、接続がタイムアウトした場合や別のネットワークの問題が発生した場合にのみ失敗を返すことです。401 が返された場合、成功として分類されますが、JSON を MobileAppSetup POJO に解析できなかったため、null 応答が返されます。

現時点では、応答に対して null チェックを行う必要がありますが、それがサーバー エラーまたは有効な 401 であった場合、その理由が何であるかはわかりません。

public final class HTTPRequestListener implements RequestListener<MobileAppSetup> {

    @Override
    public void onRequestFailure(SpiceException spiceException) {
        Log.d("", "failure:"+ spiceException);
        loginProgress.hide();

    }

    @Override
    public void onRequestSuccess(final MobileAppSetup response) {
        Log.d("","success. Data: "+response);

        if(response==null)
            showDialog("Error logging in", "Please check your username and password and try again.", "");

        loginProgress.hide();

        postLoginProcess(response);

    }
} 

これらのエラーを onRequestFailure コールバックに渡して、適切に処理できるようにする必要があります。Robospice がエラーとして処理するエラー コードを指定する方法はありますか。ある種のカスタムエラーハンドラーを追加する必要があると思いますが、現時点では解決策を見つけることができません.

4

1 に答える 1