通过缓存处理可以有效降低服务器的负荷,加快APP界面加载速度,提升用户体验。Retrofit + OkHttp缓存处理流程是这样的,请求响应之后会在data/data/packageName/cache下建立一个response文件夹,保存缓存数据,后续请求时若无网络,则直接读取缓存内容,若有网络则从网络获取最新数据并缓存。
1.设置缓存路径,大小及添加缓存拦截器
//设置缓存路径 File httpCacheDirectory = new File(CommonApplication.getInstance().getCacheDir(), "responses"); //设置缓存 10M Cache cache = new Cache(httpCacheDirectory, 10 * 1024 * 1024); //创建OkHttpClient,并添加拦截器和缓存代码 OkHttpClient client = new OkHttpClient.Builder() .addNetworkInterceptor(new CacheInterceptor(CommonApplication.getInstance())) .cache(cache).build();