okhttp缓存设置

============================
okhttp可以缓存请求信息,可以配置okhttp只从缓存读数据、只从网络读数据和当没有网络时从缓存读数据等。

下面是简单说明,具体请参考下面的文章。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 指定缓存存放的目录
File cacheDir = new File(context.getCacheDir(), "netCache");
// 指定缓存大小为10M,具体大小自己定
int cacheSize = 10 * 1024 * 1024;
// 设置缓存对象,Cache是okhttp中的类
Cache cache = new Cache(cacheDir, cacheSize);

// 生成okhttp Builder对象,并设置缓存
OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder()
.cache(cache)
.build();
// 生成OkHttp对象
OkHttpClient client = clientBuilder.build();
// 用client请求,或者设置为Retrofit的client
....

下面的参考文章中还给出了拦截服务器的回复,改写HTTP头部字段,如果服务器没有设置缓存头部属性,那么就自己加上,让客户端缓存结果。

参考文章:[Can Retrofit with OKHttp use cache data when offline]

============================

原创,转载请指明出处(http://blog.xinspace.xin)。