Я включил кэширование при получении экземпляра модификации:
httpClient = new OkHttpClient.Builder()
.connectTimeout(5000, TimeUnit.MILLISECONDS)
.readTimeout(30000, TimeUnit.MILLISECONDS)
.writeTimeout(30000, TimeUnit.MILLISECONDS)
.cache(new Cache(context.getCacheDir(),CACHE_SIZE_BYTES))
.addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.HEADERS))
.build();
Но я все еще получаю код ответа 200 с сервера.OkHttp Logs:
<-- 200 https://--------------------------------------------(586ms)
2019-01-19 08:02:05.415 22042-22069/? D/OkHttp: content-type: application/json
2019-01-19 08:02:05.415 22042-22069/? D/OkHttp: content-length: 1343085
2019-01-19 08:02:05.416 22042-22069/? D/OkHttp: accept-ranges: bytes
2019-01-19 08:02:05.416 22042-22069/? D/OkHttp: server: nginx/1.10.3
2019-01-19 08:02:05.416 22042-22069/? D/OkHttp: date: Fri, 18 Jan 2019 21:01:58 GMT
2019-01-19 08:02:05.416 22042-22069/? D/OkHttp: last-modified: Wed, 16 Jan 2019 21:12:31 GMT
2019-01-19 08:02:05.416 22042-22069/? D/OkHttp: etag: "5c3f9e3f-147e6d"
2019-01-19 08:02:05.416 22042-22069/? D/OkHttp: strict-transport-security: max-age=63072000
2019-01-19 08:02:05.416 22042-22069/? D/OkHttp: x-frame-options: DENY
2019-01-19 08:02:05.416 22042-22069/? D/OkHttp: x-content-type-options: nosniff
Я заметил, что в журналах нет заголовка Cache-Control
.
Ответ StackOverflow говорит, что заголовок Cache-Control
должен быть правильно настроен, чтобы он работал.Как я могу включить Cache-Control для моих вызовов?
Я пытался использовать @Headers
декоратор для вызова API.
@Headers({"Cache-Control: private, must-revalidate"})
@GET("data/taxonomies/categories.json")
Single<CategoriesWrapper> getCategories();
Но после этого также я получил те же журналы.У меня кончились идеи сейчас.Есть что-то для настройки на стороне сервера, или я что-то не так только на стороне клиента?