简单用法
1.创建 OkHttpClient 对象
核心客户端类
通过静态内部类 Builder() 设置相关参数
2.创建 Request 对象
构建请求参数,传入请求报文信息 url、method、header
3.创建 Call 对象
即具体请求实例,将 Request 封装成 Call 对象
newCall 传入 request 对象创建
4.调用 Call 的 execute/enqeue 方法发送请求
同步需要注意:发送请求后,就会进入阻塞状态,直到收到响应
流程图解
image.pngOkHttpClient
Builder 构建方式,链式调用
dispatcher 分发基类,分发器接收到同步、异步请求队列,分发同步、异步请求
ConnectionPool 连接池,相同请求复用,支持并发
image.pngDispatcher
分发同步/异步任务
维护任务队列
runningAsyncCalls (正在执行的任务,包括执行在取消的)
readyAsyncCalls (等待就绪的任务)
runningSyncCalls
同步/异步
同步请求就是执行请求的操作是阻塞式,直到 HTTP 响应返回
异步请求就类似于非阻塞式的请求,它的执行结果一般都是通过接口回调的方式告知调用者
拦截器
官网:拦截器是 OkHttp 中提供一种强大机制,它可以实现网络监听、请求以及响应重写、请求失败重试等功能
image.png image.pngApplicationInterceptor 系统拦截器
ConnectInterceptor 网络拦截器
ConnectionPool
链接复用,多路复用
网友评论