Я новичок в RxJava и Retrofit, и я пытаюсь написать свои вызовы API с ним. Все вызовы API возвращают тело JSON при ошибке, которая находится в общем формате как,
{"errors":[{"code":100, "message":"Login/Password not valid", "arguments":null}]}
В настоящее время мой код для вызова API входа (другие также похожи),
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);
}
});
Когда я получаю сообщение об ошибке в onError(), я хотел бы автоматически декодировать JSON в корпусе ошибки POJO и использовать это. Есть ли способ сделать это предпочтительно в одном месте для всех других вызовов API. Любая помощь приветствуется.