关于OkHttp的缓存和网络拦截

	有时候我们要对网络数据进行缓存默认情况下okhttp是不进行缓存的
添加拦截器进行数据拦截。
static OkHttpClient client;

static {
    client = new OkHttpClient();
    File cacheFile = null;
    client.newBuilder()//创建一个构建者
            .readTimeout(15, TimeUnit.SECONDS)//设置读取的超时时间
            .connectTimeout(15, TimeUnit.SECONDS)//设置连接的超时时间
            .writeTimeout(15, TimeUnit.SECONDS)//设置读写超时时间
            .addNetworkInterceptor(new CacheIntercepter())//添加网络拦截器
            .cache(new Cache(cacheFile, 10 * 1024 * 1024));
}
static class CacheIntercepter implements Interceptor {
    //服务端未做相关的cache缓存配置
    @Override
    public Response intercept(Chain chain) throws IOException {
        Response response = chain.proceed(chain.request());
        return response.newBuilder()//构造者
                .removeHeader("pragma")//移除标题
                .header("Cache-Control", "max-age=15")
                .build();
        //设置缓存时间为60秒,并移除了pragma消息头,移除它的原因是因为pragma也是控制缓存的一个消息头属性
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值