Is Retrofit+Okhttp using httpCaching as a default in Android?

Janusz picture Janusz · Feb 5, 2014 · Viewed 10.8k times · Source

I use retrofit and okhttp in one of our applications.

I can't really find a good explanation for the default behaviour of Retrofit.

If Okhttp is on the class path it will be automatically used. But as far as I can see it the default HttpResponseCache is null.

Do I need to explicitly enable caching with Retrofit and Okhttp?

Answer

e.shishkin picture e.shishkin · Jul 1, 2014

Correct implementation for OkHttpClient v2:

int cacheSize = 10 * 1024 * 1024; // 10 MiB
File cacheDir = new File(context.getCacheDir(), "HttpCache");
Cache cache = new Cache(cacheDir, cacheSize);
OkHttpClient client = new OkHttpClient.Builder()
    .cache(cache)
    .build();

see documentation