Невозможно снова получить данные из сети после того, как они пришли из кеша - PullRequest
0 голосов
/ 31 декабря 2018

Я пытаюсь кэшировать данные моего сетевого запроса.Я указал его максимальный возраст = 60.Данные должны приходить из кеша до 60 секунд.Но проблема в том, что я каждый раз получаю данные из кеша и не могу снова отправить сетевой запрос.Я хочу, чтобы данные приходили из сети после истечения времени, т.е. 60 секунд. Ниже приведен код, который я использую для модификации запросов:

  OkHttpClient okHttpClient = new OkHttpClient.Builder()
            .cache(new Cache(MyApp.getInstance().getCacheDir(), 5 * 1024 * 1024))
            .addInterceptor(new Interceptor() {
                @Override
                public okhttp3.Response intercept(Chain chain) throws IOException {
                    Request request = chain.request();
                    if (hasNetwork(MyApp.getInstance()))
                        request = request.newBuilder().header("Cache-Control", "public, max-age=" + 60).build();
                    else
                        request = request.newBuilder().header("Cache-Control", "public, only-if-cached, max-stale=" + 60 * 60 * 24 * 7).build();
                    return chain.proceed(request);
                }
            })
            .build();

    Retrofit retrofit = new Retrofit.Builder()
            .addConverterFactory(GsonConverterFactory.create())
            .client(okHttpClient)
            .baseUrl("https://reqres.in")
            .build();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...