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
网友评论