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的集合
这里画个图来看看


okhttp之我的理解_第1张图片
image

你可能感兴趣的:(okhttp之我的理解)