一.OkHttpClient
OkHttp支持两种构造方式
1.默认方式:publicOkHttpClient(){this(newBuilder());}
2.builder模式:publicOkHttpClientbuild(){returnnewOkHttpClient(this);}
什么设计模式哪?
1.builder模式
2.外观模式
二.2.Request:request的构建也是基于builder模式。
三.异步请求:
getResponseWithInterceptorChain:
getResponseWithInterceptorChain()这个方法,给我的感觉这个方法就是okHttp的精髓。里面调用returnchain.proceed(originalRequest);
可以看到这里我们拿了一个ConnectInterceptor的源码,这里得到chain后,进行相应的处理后,继续调用proceed方法,那么接着刚才的逻辑,index+1,获取下一个interceptor,重复操作,所以现在就很清楚了,这里利用递归循环,也就是okHttp最经典的责任链模式。
一、RetryAndFollowUpInterceptor:负责重试和重定向。
二、BridgeInterceptor:桥接,负责把应用请求转换成网络请求,把网络响应转换成应用响应,说白了就是处理一些网络需要的header,简化应用层逻辑。
三、CacheInterceptor:负责管理缓存,使用okio读写缓存。
四、ConnectInterceptor:负责创建连接Connection。
五、CallServerInterceptor:负责写请求和读响应