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); } }
Okhttp的缓存优化
最新推荐文章于 2024-09-21 07:15:00 发布