Sono abbastanza nuovo per RxJava e Retrofit e sto provando a scrivere le mie chiamate API con esso. Tutte le chiamate API restituiscono un corpo JSON in caso di errore, che è nel formato generale,Retrofit 2.0 + RxJava + Errore corpo JSON
{"errors":[{"code":100, "message":"Login/Password not valid", "arguments":null}]}
Attualmente il mio codice per la chiamata API di accesso (gli altri sono simili) è,
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 ho ottenere un errore su onError(), mi piacerebbe decodificare automaticamente il JSON nel corpo dell'errore in un POJO e usarlo. C'è un modo per farlo preferibilmente in un posto per tutte le altre chiamate API. Qualsiasi aiuto è apprezzato.