OkHttp源码与架构(四)

665 阅读1分钟

前几篇文章看了OkHttp的源码,现在来看看OkHttp的架构吧。

首先从Okhttp的各个类流程来看看:

image.png

这里主要有六个关键类

  • OkHttpClient:这个类主要用于创建OkHttpClient,并初始化相关参数,例如是否使用cookie、使用的接口协议、初始化dispatcher、初始化线程池等。
  • Request:请求类,主要封装用于网络请求的url等信息。
  • Call(RealCall):RealCall类主要用于将请求交给分发器、添加五个默认的拦截器和用户自定义的拦截器等作用。是分发器和拦截器的入口。
  • Dispatcher:Dispatcher主要用于call的调度。
  • Interceptors:Interceptor采用责任链模式,主要有五个子类:RetryAndFollowUpInterceptor、BridgeInterceptor、CacheInterceptor、ConnectInterceptor、CallServerInterceptor。这五个子类依次处理request,然后再依次返回resposne。
  • Response:Response是服务器返回的结果,由Intercept层层处理之后返回给application。

OkHttp的核心代码就在五个interceptor的逻辑中。之前我们已经分析过interceptor的调用流程,现在用图总结一下调用流程。

image.png

OkHttp的源码框架还有很多部分,例如socket、具体协议等还没仔细看。但是到目前为止,OkHttp的框架基本已经看完了。

后续有时间在看看android其他的framework吧。