2016-10-11 6 views
6

Я пытаюсь установить кеш для «Дооснащения», чтобы он не получал данные постоянно. Я следовал this SO, поскольку он, кажется, находится в правильном направлении того, что мне нужно.OkHttpClient не может решить метод setCache

У меня есть следующие (который идентичен от 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.

Что я здесь делаю неправильно? У меня есть модификация 2.1.0 и okhttp3 3.4.1

ответ

12

В 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(); 
+0

Я получаю сообщение об ошибке Не удается разрешить символ 'REWRITE_CACHE_CONTROL_INTERCEPTOR' –