Okhttp的缓存优化

来源:互联网 发布:mac英英词典 编辑:程序博客网 时间:2024/05/16 11:46
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);    }}
原创粉丝点击