Есть ли у нас возможность остановить запрос в OkHttp Interceptor?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли у нас возможность остановить запрос в OkHttp Interceptor?

Сообщение Anonymous »

В нашем приложении мы столкнулись с одним особым случаем: если наш App.specialFlag == true, нам нужно остановить любой запрос из нашего кода. И мы считаем, что лучший подход в этой ситуации — включить специальный перехватчик, который будет останавливать любые наши запросы, примерно так:

Код: Выделить всё

if (App.specialFlag) {
// Somehow stop request
} else {
return chain.proceed(chain.request());
}
Также следует отметить, что мы используем RxJavaCallAdapterFactory для переноса ответов в Observable.

Но мы не видим никаких методов остановки запроса в перехватчиках OkHttp.

Мы придумали два способа решения нашей проблемы:

а) Создать специальный ApiService.class

code> для упаковки каждого запроса в нашем API следующим образом:

Код: Выделить всё

public Observable getUserDetails() {
if (App.specialFlag) {
return Observable.just(null);
}
return api.getUserDetails();
}
Но мы считаем, что это уродливое и громоздкое решение.

б) Вызовите исключение RuntimeException в Interceptor, а затем перехватывать его везде, где мы используем наш API.

Второе решение тоже не очень хорошее, поскольку нам нужно включить в наши цепочки множество операторов onErrorResumeNext.
Может кто-нибудь знает, как поступить в нашей ситуации более «умнее»?..

Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/375 ... nterceptor
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

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

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»