我正在尝试为Retrofit设置缓存,以便它不必不断检索数据。我遵循了this SO,因为它似乎朝着我所需要的正确方向发展。
我有以下内容(与SO相同)
OkHttpClient client = new OkHttpClient();
client.networkInterceptors().add(REWRITE_CACHE_CONTROL_INTERCEPTOR);
File httpCacheDirectory = new File(getCacheDir(), "responses");
int cacheSize = 10*1024*1024;
Cache cache = new Cache(httpCacheDirectory, cacheSize);
client.setCache(cache);
但是,
client.setCache(cache)
返回错误cannot resolve method setCache
。我在这里做错了什么?我已经 retrofit 了2.1.0和okhttp3 3.4.1
最佳答案
在3.x中,将OkHttpClient
上的一堆方法移到OkHttpClient.Builder
上的方法。您想要这样的东西:
File httpCacheDirectory = new File(getCacheDir(), "responses");
int cacheSize = 10*1024*1024;
Cache cache = new Cache(httpCacheDirectory, cacheSize);
OkHttpClient client = new OkHttpClient.Builder()
.addNetworkInterceptor(REWRITE_CACHE_CONTROL_INTERCEPTOR)
.cache(cache)
.build();
关于retrofit - OkHttpClient无法解析方法setCache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39988422/