如何告诉OkHttpClient忽略缓存并强制刷新服务器?

时间:2015-03-14 19:19:52

标签: android caching retrofit okhttp

在我的Android应用程序中,我使用带有OkHttpClient的Retrofit,并启用了缓存来访问某些API。我们的一些API有时会返回空数据。我们在应用程序中提供“刷新”按钮,以便客户端从特定API重新加载数据。

如何告诉OkHttpClient特定请求应忽略缓存条目。或者,是否有机制删除对应于单个请求的缓存响应?

我看到了Cache.remove(request)方法,但它被标记为私有。

2 个答案:

答案 0 :(得分:23)

正如Jake Wharton在issues中所建议的,这样做是为了忽略缓存:

request.setCacheControl(CacheControl.FORCE_NETWORK);

答案 1 :(得分:2)

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

在该方法上应该起作用。 如果您想动态地进行操作,则可以添加

@Header("Cache-Control") 

字符串cacheControl参数,并传递null或“ no-cache”