Capture a resposta http no Retrofit antes de passá-la para a atividade de chamada

No momento, estamos usando o retrofit assim:

service.executeSomeRequest(UserPreferenceRequest userPreferenceRequest, new Callback<UserPreferenceResponse>() {
    @Override
    public void success(UserPreferenceResponse responseCallback, Response response) {
        if (responseCallback.getStatus() == ResponseStatus.OK) {
            // Everything is OK, process response
        } else {
            ApiErrorProcessor.process(responseCallback.getError());
        }
    }

    @Override
    public void failure(RetrofitError retrofitError) {
        ServerErrorProcessor.process(retrofitError);
    }
});

Mas temos muitas solicitações e, praticamente, todas as solicitações que implementamos exigem que escrevamos o mesmo tratamento de código de erro (para erros de API e de servidor) que duplica o código.

O que queremos é substituir apenas os métodos de interesse e, se nenhuma implementação for fornecida, uma implementação padrão a ser executada.

Algo assim:

service.executeSomeRequest(UserPreferenceRequest userPreferenceRequest, new     
    CustomCallback<UserPreferenceResponse>() {
            @Override
            public void success(UserPreferenceResponse responseCallback, Response response) {
                super.success(responseCallback, response);
                // Everything is OK, process response
            }
    });

oCustomCallback cuidará dos erros de API e do servidor e, se estiver tudo bem, só então passará o resultado para a atividade de chamada.

Ao construir oRestAdapter Há simsetRequestInterceptor(); que me permite capturar a solicitação antes de emiti-la, eu estava pensando em algo semelhante, comosetResponseInterceptor(), isso permitirá que eu pegue a resposta antes de passá-la para a atividade e trate erros genéricos, mas não encontrei algo semelhante.

questionAnswers(2)

yourAnswerToTheQuestion