Retrofit+Rxjava设置缓存

本文介绍如何使用Retrofit结合OkHttp实现缓存功能,包括设置缓存大小、缓存目录及通过拦截器控制缓存过期时间。

首先说一下Retrofit是基于Okhttp做的所以咋们的Retrofit的缓存也是如此

long MAX = 10 * 1024 * 1024;//设置缓存最大内存
File file = new File(this.getExternalCacheDir(), "jingshi");//为缓存设置缓存//目录文件夹 和缓存文件夹名字
Cache cache = new Cache(file, MAX);//Cache是缓存对象
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.cache(cache);
builder.addInterceptor(new Interceptor() {
    @Override
    public Response intercept(Chain chain) throws IOException {
        Request.Builder builder1 = chain.request().newBuilder();
        builder1.cacheControl(new CacheControl.Builder().maxStale(50 * 50 * 10, TimeUnit.SECONDS).build());
        Response proceed = chain.proceed(builder1.build());
        return proceed;
    }
});

 

OkHttpClient build2 = builder.build();//Okhttp对象build返回但前对象

Retrofit build1 = new Retrofit.Builder().client(build2).baseUrl(RxUrl.RXURLS).addCallAdapterFactory(RxJavaCallAdapterFactory.create())
        .addConverterFactory(GsonConverterFactory.create()).build();
RJiekou rJiekou = build1.create(RJiekou.class);
Observable<Bens> strig = rJiekou.getStrig();//Rxjava链式调用并把我们的Okhttp的拦截器和build的对象放进去

到这 我们的缓存就昨完了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值