Подтвердить что ты не робот

Как сказать OkHttpClient игнорировать кеш и принудительно обновить сервер?

В моем приложении для Android я использую Retrofit с OkHttpClient с включенным кэшированием для доступа к некоторым API. Некоторые из наших API иногда возвращают пустые данные. Мы предлагаем кнопку "Обновить" в приложении, чтобы клиент мог перезагрузить данные из определенного API.

Как сообщить OkHttpClient, что конкретный запрос должен игнорировать запись в кеше. В качестве альтернативы существует ли механизм для удаления кэшированного ответа, соответствующего одному запросу?

Я вижу метод Cache.remove(request), но он помечен как закрытый.

4b9b3361

Ответ 1

Как Джейк Уортон предложил в issues сделать это, чтобы игнорировать кеш:

request.setCacheControl(CacheControl.FORCE_NETWORK);

Ответ 2

@Headers("Cache-Control: no-cache") 

на метод должен работать. Если вы хотите сделать это динамически, вы можете добавить

@Header("Cache-Control") 

Параметр String cacheControl и передать значение null или "no-cache"