在我的Android应用程序中,我使用带有OkHttpClient的Retrofit,并启用了缓存来访问某些API。我们的一些API有时会返回空数据。我们在应用程序中提供“刷新”按钮,以便客户端从特定API重新加载数据。
如何告诉OkHttpClient特定请求应忽略缓存条目。或者,是否有机制删除对应于单个请求的缓存响应?
我看到了Cache.remove(request)方法,但它被标记为私有。
答案 0 :(得分:23)
正如Jake Wharton在issues中所建议的,这样做是为了忽略缓存:
request.setCacheControl(CacheControl.FORCE_NETWORK);
答案 1 :(得分:2)
@Headers("Cache-Control: no-cache")
在该方法上应该起作用。 如果您想动态地进行操作,则可以添加
@Header("Cache-Control")
字符串cacheControl参数,并传递null或“ no-cache”