Кеширование в OkHttp
Вопрос
Как работает HTTP-кеш OkHttp?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
Ответ
Подключается Cache(directory, maxSize) в билдере клиента. Работает по заголовкам ответа (Cache-Control, ETag, Last-Modified): свежий ответ берётся из кеша без сети, устаревший проверяется условным запросом (304). Офлайн-режим можно сделать интерцептором с CacheControl.FORCE_CACHE. Для данных приложения надёжнее свой кеш в Room.
Разбор
Подключается Cache(directory, maxSize) в билдере клиента. Работает по заголовкам ответа (Cache-Control, ETag, Last-Modified): свежий ответ берётся из кеша без сети, устаревший проверяется условным запросом (304). Офлайн-режим можно сделать интерцептором с CacheControl.FORCE_CACHE. Для данных приложения надёжнее свой кеш в Room.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «Сеть: Retrofit и OkHttp»
- Где обновлять токен при 401
- Сетевой стек Android
- Gson и non-null поля Kotlin
- Новое поле в JSON и kotlinx.serialization
- Application и network интерцепторы
- HttpLoggingInterceptor в release
- Один OkHttpClient на приложение
- Путь запроса через цепочку OkHttp