для получения данных с сервера использую вот такой запрос:
public void getContactDataTechnicalSupport(String country) {
compositeDisposable = new CompositeDisposable();
ApiFactory apiFactory = ApiFactory.getInstance();
ApiService apiService = apiFactory.getApiService();
Disposable disposable = apiService.getContactDataTechnicalSupport(country)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(response -> {
if (response.getSuccess())
view.setTechSupportData(response);
else
view.showErrorRequestSupportContact(response.getCode(), response.getMessage());
}, throwable -> {
view.showErrorRequestSupportContact(0, "Ошибка подключения");
});
compositeDisposable.add(disposable);
}
Мне нужно показать пользователю что у него нет интернета, данный запрос показывает это сообщение даже если ошибка на сервере, что не совсем корректно, как мне можно обработать ошибку чтобы показать сообщение?
Решил это вот так:
apiService.getContactDataTechnicalSupport(country)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(response -> {
if (response.getSuccess())
view.setTechSupportData(response);
else
view.showErrorRequestSupportContact(response.getCode(), response.getMessage());
}, throwable -> {
if (throwable instanceof SocketTimeoutException || throwable instanceof UnknownHostException)
view.showErrorRequestSupportContact(NO_INTERNET_CODE, "Нет интернета");
else
view.showErrorRequestSupportContact(0, "Ошибка подключения");
});
Продвижение своими сайтами как стратегия роста и независимости