OKHttp架构简析

2020-04-15  本文已影响0人  Davisxy

从创建到使用:

OkHttpClient

一开始构建一个OKHttpClient,Builder构建者模式;里面有几个重要参数:

任务分发器

连接池

重试次数

拦截器

内部是链式连接的

将所有的拦截器放到一个List中,然后创建一个链,将这个List放到链中;链的长度等于List的长度;链始终维持一个对象,那就是Response;在连接拦截器中组装所有的参数,在最后的请求服务拦截器中,创建或者复用Socket,发出请求并获取结果。

Request

Builder模式构造参数

Call

构建一个Call,持有Request和Client,Request;

同步/异步回调

回调的时候,构建一个Runnable,将Callback传到调度器的执行方法中,callback进行回调,创建Runnable的时候,构建了拦截器,同时将自身传入到了链中这样链就持有了Call中的request,在构建连接拦截器的时候就能够拿到拼接参数;Client属性同样在连接拦截器中用于从复用池中获取连接对象,重连拦截器中获取重连次数,以及最终执行完成后回调分发器中的回调,还有获取传入进来的自定义拦截器。

上一篇 下一篇

猜你喜欢

热点阅读