Retrofit 2.0 + RxJava + Corpo JSON de erro
Eu sou muito novo em RxJava e Retrofit e estou tentando escrever minhas chamadas de API com ele. Todas as chamadas de API retornam um corpo JSON por erro, que está no formato geral como,
{"errors":[{"code":100, "message":"Login/Password not valid", "arguments":null}]}
Atualmente, meu código para a chamada da API de login (outros também são semelhantes) é,
mConnect.login(id, password)
.subscribe(new Subscriber<Token>() {
@Override
public void onCompleted() {
Log.d(TAG, "onCompleted()");
}
@Override
public void onError(Throwable e) {
Log.e(TAG, "onError(): " + e);
if (e instanceof HttpException) {
// dump e.response().errorBody()
}
}
@Override
public void onNext(Token token) {
Log.d(TAG, "onNext(): " + token);
}
});
Quando recebo um erro no onError (), gostaria de decodificar automaticamente o JSON no corpo do erro para um POJO e usá-lo. Existe uma maneira de fazer isso de preferência em um só lugar para todas as outras chamadas de API. Qualquer ajuda é apreciada.