Okhttp设置http缓存,在没有网络的情况下加载http缓存里面的内容

HTTP_CACHE_FILENAME为缓存地址根路径;
private final        String      HTTP_CACHE_FILENAME               = "HttpCache";
    private static final Interceptor REWRITE_CACHE_CONTROL_INTERCEPTOR = new Interceptor() {
        @Override public Response intercept(Chain chain) throws IOException {
            Response originalResponse = chain.proceed(chain.request());
            return originalResponse.newBuilder()
                                   .removeHeader("Pragma")
                                   .header("Cache-Control", String.format("max-age=%d", 60))
                                   .build();
        }
    };

 

然后再okhttpclient初始化的时候加上缓存设置:

mOkHttpClient = new OkHttpClient();
        //cookie enabled
        mOkHttpClient.setCookieHandler(new CookieManager(null, CookiePolicy.ACCEPT_ORIGINAL_SERVER));
        mOkHttpClient.setConnectTimeout(15000, TimeUnit.SECONDS);
        mOkHttpClient.setReadTimeout(15000, TimeUnit.SECONDS);
        mOkHttpClient.setWriteTimeout(15000, TimeUnit.SECONDS);
        mOkHttpClient.setRetryOnConnectionFailure(true);
        //-------------------------------设置http缓存,提升用户体验-----------------------------------
        Cache cache;
        File httpCacheDirectory = new File(BaseApplication.getAppContext().getExternalCacheDir(), HTTP_CACHE_FILENAME);
        cache = new Cache(httpCacheDirectory, 10 * 1024);
        mOkHttpClient.setCache(cache);
        mOkHttpClient.networkInterceptors().add(REWRITE_CACHE_CONTROL_INTERCEPTOR);
        //-------------------------------设置http缓存,提升用户体验-----------------------------------

        mDelivery = new Handler(Looper.getMainLooper());

        if (false) {
            mOkHttpClient.setHostnameVerifier(new HostnameVerifier() {
                @Override public boolean verify(String hostname, SSLSession session) {
                    return true;
                }
            });
        }

  

转载于:https://www.cnblogs.com/androidsuperman/p/5197458.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值