Я использую Retrofit с Rx java для запроса к серверу.
мой сервер возвращает определенный json формат, который включает данные и определенное сообщение.
сервер возвращает http-ответ. все в порядке, если сервер возвращает код успеха (200).
, но я хочу, если сервер возвращает другой код, я управляю телом этого ответа.
например:
сервер возвращает 401, и я хочу прочитать тело ответа для сообщения show сервера.
но когда сервер другой код, дооснащение вызывает метод onError, и я не могу использовать тело ответа.
как решить эту проблему?
это мой метод
'' '
private void login(String username , String password){
view.setLoading();
source.loginUser(username, password)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new SingleObserver<Response<LoginResult>>() {
@Override
public void onSubscribe(Disposable d) {
disposable.add(d);
}
@Override
public void onSuccess(Response<LoginResult> loginResult) {
if (loginResult.isSuccessful()){
}
else
new AlertConfiguration(view.getViewActivity()).showMessage(loginResult.body().getMessage());
}
@Override
public void onError(Throwable e) {
if there is a problem
}
});
' ''
, и это мой метод интерфейса для модернизации
@POST("...")
Single<Response<LoginResult>> loginUser(@Query("username") String username, @Query("password") String password);