Невозможно отобразить сообщение об ошибке на стороне сервера для пользователя при использовании модификации на стороне приложения - PullRequest
0 голосов
/ 07 марта 2019

Мое требование - отображать различные сообщения об ошибках, отправленные сервером конечному пользователю.

API, написанные на сервере, являются службами отдыха.

Например:

На стороне сервера генерируется код 400, когда пользователь вводит неправильное имя пользователя / пароль.

Я пытаюсь выполнить API, написанные на стороне сервера, через Retrofit в конце приложения.

400 неверный запрос генерируется сервером, когда пользователь вводит неверные данные для имени пользователя / пароля.

На данный момент выполняется только метод onError(), а не метод onNext().

Если onNext() будет выполнено, я смогу показать сообщения об ошибках на стороне сервера

1 Ответ

0 голосов
/ 07 марта 2019

Боюсь, что это не так, когда вы интегрируете Retrofit с rxjava.

Когда вы получите код ответа, который не является 2XX, Retrofit выдаст ошибку пара, вызывая метод onError. Оттуда вам нужно получить тело ошибки ответа из исключения. Это действительно простой способ сделать это:

public void onError(Throwable e){
    if ( e instanceOf HttpException) {
       HttpException error = (HttpException)e;
       String errorBody = error.response().errorBody().string();
       // now you can parse the error or simply show it
    }
}

Обратите внимание, что не все исключения будут HttpException и могут потребовать другой обработки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...