【问题标题】:How to set app level cache directory for OkHttp Client如何为 OkHttp 客户端设置应用级缓存目录
【发布时间】:2016-10-25 08:55:25
【问题描述】:
我正在使用 Retrofit - OkHttp 进行网络服务调用。
在使用 OkHttp 的OkHttpClient.Builder 获取OkHttpClient 时,
缓存有参数。
见下一行:
OkHttpClient.Builder builder = new OkHttpClient.Builder()
.cache(?);// This last parameter
如何设置这个缓存参数?
【问题讨论】:
标签:
android
caching
retrofit
okhttp
【解决方案1】:
使用下面的代码,我们可以为OkHttpClient设置应用级缓存目录:
// Install an HTTP cache in the application cache directory.
File cacheDir = new File(app.getCacheDir(), "http");
// [app] is your Application class object.
// using [app.getCacheDir()], get app cache directory.
Cache cache = new Cache(cacheDir, DISK_CACHE_SIZE);
//DISK_CACHE_SIZE is constant for OkHttpClient cache directory size.
//private int DISK_CACHE_SIZE = 50 * 1024 * 1024; // 50MB
OkHttpClient.Builder builder = new OkHttpClient.Builder()
.cache(cache);
OkHttpClient okHttpClient=builder.build();