Retrofit 2.0 + RxJava + Error JSON body
Soy bastante nuevo en RxJava y Retrofit y estoy tratando de escribir mis llamadas API con él. Todas las llamadas API devuelven un cuerpo JSON en caso de error que está en el formato general como,
{"errors":[{"code":100, "message":"Login/Password not valid", "arguments":null}]}
Actualmente mi código para la llamada de API de inicio de sesión (otros también son similares) es,
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);
}
});
Cuando recibo un error en onError (), me gustaría decodificar automáticamente el JSON en el cuerpo del error en un POJO y utilizarlo. ¿Hay alguna manera de hacer esto preferiblemente en un lugar para todas las demás llamadas API? Cualquier ayuda es apreciada.