Как изменить политику кэширования по умолчанию в Охттп? - PullRequest
1 голос
/ 20 января 2020

Я использую Picasso для загрузки изображений. У Пикассо нет дискового кэша. OkHttp поддерживает HTTP-кеш, который контролируется HTTP-заголовками кеша. Я хочу установить срок действия для кэшированных образов дисков, поэтому добавили заголовки управления кэшем в ответ HTTP cache-control: public, max-age=7200, но это не относится к заголовкам кэша. Текущее поведение является HTTPResponseCache по умолчанию, который учитывает RF C 7234. Есть ли что-то, что нам не хватает?

enter image description here

1 Ответ

0 голосов
/ 21 января 2020

Вы можете переписать заголовки кэша в ответе с помощью сетевого перехватчика. Вот пример из перехватчиков OkHttp, которые делают c, чтобы начать:

/** Dangerous interceptor that rewrites the server's cache-control header. */
private static final Interceptor REWRITE_CACHE_CONTROL_INTERCEPTOR = new Interceptor() {
  @Override public Response intercept(Interceptor.Chain chain) throws IOException {
    Response originalResponse = chain.proceed(chain.request());
    return originalResponse.newBuilder()
        .header("Cache-Control", "max-age=60")
        .build();
  }
};

Обратите внимание, что вам может потребоваться удалить заголовки из ответа сервера, чтобы получить желаемое поведение кэширования.

Обратите также внимание, что сервер лучше делать так, как вы хотите; таким образом, он будет правильно работать на iOS и в Интернете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...