web-dev-qa-db-fra.com

Comment dire à OkHttpClient d'ignorer le cache et de forcer l'actualisation à partir du serveur?

Dans mon Android, j'utilise Retrofit avec OkHttpClient avec la mise en cache activée pour accéder à certaines API. Certaines de nos API retournent parfois des données vides. Nous fournissons un bouton "Actualiser" dans l'application pour le client pour recharger les données d'une API spécifique.

Comment puis-je dire à OkHttpClient qu'une demande spécifique doit ignorer l'entrée mise en cache. Sinon, existe-t-il un mécanisme pour supprimer la réponse mise en cache correspondant à une seule demande?

Je vois la méthode Cache.remove (request) mais elle est marquée comme privée.

26
inder

Comme Jake Wharton l'a suggéré dans issues , faites ceci pour ignorer le cache:

request.setCacheControl(CacheControl.FORCE_NETWORK);
24
inder
@Headers("Cache-Control: no-cache") 

sur la méthode devrait fonctionner. Si vous voulez le faire dynamiquement, vous pouvez ajouter un

@Header("Cache-Control") 

Chaîne du paramètre cacheControl et passez null ou "no-cache"

3
Rasheed