Okhttp的缓存优化

public class Utills {
    public static final long MAX_SIZE = 8*1024*1024;
    private static Utills utills;
    private OkHttpClient okHttpClient;
    private Utills(Context context){
        File dir = context.getFilesDir();
        Cache cache = new Cache(dir, MAX_SIZE);
        okHttpClient = new OkHttpClient.Builder().cache(cache).addNetworkInterceptor(new Interceptor() {
            @Override
            public Response intercept(Chain chain) throws IOException {
                // 1、通过Chain对象获取Request对象
                Request request = chain.request();
                //2、通过Chain对象重新发起请求,并获取Response对象
                Response proceed = chain.proceed(request);
                //移除头部信息:Pragma、Cache-Control
                Response response =  proceed.newBuilder().removeHeader("Pragma")
                        .removeHeader("Cache-Control").addHeader("Cache-Control","max-age="+(60)).build();
                return response;
            }
        }).build();
    }
    public static synchronized Utills getInstance(Context context){
        if(utills==null)
            utills=new Utills(context);
        return  utills;
    }
    public void sendGent(String url , Callback callback){
        Request build = new Request.Builder().url(url).build();
        Call call = okHttpClient.newCall(build);
        call.enqueue(callback);
    }

    public void sengPost(String url, RequestBody body, Callback callback){
        Request post = new Request.Builder().url(url).method("POST", body).build();
        Call call = okHttpClient.newCall(post);
        call.enqueue(callback);

    }


}

你可能感兴趣的:(基础)