package org.cuieney.videolife.common.okhttp; import android.content.Context; import org.cuieney.videolife.common.net.NetWorkUtil; import org.cuieney.videolife.common.utils.SystemUtil; import java.io.IOException; import okhttp3.CacheControl; import okhttp3.Interceptor; import okhttp3.Request; import okhttp3.Response; /** * 项目名称:ProjectFunction * 类描述: Okhttp缓存设置 * 创建人:zhangwei * 创建时间:16/6/19 下午2:21 * 修改人:zhangwei * 修改时间:16/6/19 下午2:21 * 修改备注: */ public class CacheInterceptor implements Interceptor { public Context context; public CacheInterceptor(Context context) { this.context = context; } @Override public Response intercept(Chain chain) throws IOException { Request request = chain.request(); if (!SystemUtil.isNetworkConnected()) { request = request.newBuilder() .cacheControl(CacheControl.FORCE_CACHE) .build(); } Response response = chain.proceed(request); if (SystemUtil.isNetworkConnected()) { int maxAge = 0; // 有网络时, 不缓存, 最大保存时长为0 response.newBuilder() .header("Cache-Control", "public, max-age=" + maxAge) .removeHeader("Pragma") .build(); } else { // 无网络时,设置超时为4周 int maxStale = 60 * 60 * 24 * 28; response.newBuilder() .header("Cache-Control", "public, only-if-cached, max-stale=" + maxStale) .removeHeader("Pragma") .build(); } return response; } }