OkHttpClient无法解析方法setCache

use*_*633 8 retrofit okhttp okhttp3

我正在尝试为Retrofit设置缓存,以便它不必不断地检索数据.我跟着这个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);
Run Code Online (Sandbox Code Playgroud)

但是,client.setCache(cache)返回错误cannot resolve method setCache.

我在这做错了什么?我有改进2.1.0和okhttp3 3.4.1

Jes*_*son 16

在3.xa上将一堆方法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();
Run Code Online (Sandbox Code Playgroud)