okhttp之我的理解

okhttp的使用步骤分为三步

  • 构建okhttpClient对象 ,通过builder.build方法在builder的同时把dispater线程池管理类创建出来了(创建出来的线程池是没有帮我们作缓存的,核心线程数为0)可以添加request头信息cookieJar。还有可以添加缓存cache
  • 构建request对象,也是通过builder.build方法,在builder的同时添加一些请求的参数信息
  • 根据okhttpClient对象和request对象构建出call对象并enqueue,其实拿着构建okhttpClient时创建的那个dispater去enqueue任务,在这里对任务的数量做了限制(最大任务数量不能大于64,同一时间访问同一个主机的任务个数不能大于5)通过
response = getResponseWithInterceptorChain() 

得到response 并通过call对象的 new 出来的callBack回调到子线程中。

okhttp采用责任链的设计模式
,运用拦截器对request和response进行修改,okhttp内部维护了一个存放interceptor的集合
这里画个图来看看


image
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容