okhttp源码分析手札

一.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最经典的责任链模式


okhttp源码分析手札_第1张图片


一、RetryAndFollowUpInterceptor:负责重试和重定向。

二、BridgeInterceptor:桥接,负责把应用请求转换成网络请求,把网络响应转换成应用响应,说白了就是处理一些网络需要的header,简化应用层逻辑。

三、CacheInterceptor:负责管理缓存,使用okio读写缓存。

四、ConnectInterceptor:负责创建连接Connection。

五、CallServerInterceptor:负责写请求和读响应

你可能感兴趣的:(okhttp源码分析手札)