一:基本概念
1.请求体:指定本次请求所使用的的方法:get/post...;携带请求的参数;
2.响应头:服务器标识、状态码、内容编码(和请求编码相对应的)、cookie(下次请求使用);
3.响应体:主要是我们的本次请求所返回的数据
二:工作流程:A:首先客户机与服务器建立连接,B:建立连接后,客户机发送一个请求给服务器,C:服务器街道请求后,给予响应信息,D:客户端接收服务器所返回的信息,连接断开
三:核心类图
Dispatcher:分发类,分发异步任务
Protocol(接口):列举Okhttp支持的协议
ConnectionSpec:Connection中的一些常量和变量
ConnectionPool:管理Connection
OkHttpClient:
Interceptor(接口):过滤器,构成过滤器链
Interceptor.Cache(接口):
InternalCace(接口):
Cache:
四:多路复用机制、重连机制
五:类
Route:路由类,address
ResponseBody:响应体(数据)
Response:包含响应头header、响应体ResponseBody等
ResquestBody:请求体(abstract),实现的方法有表单body:FormBody (上传<key value>)、 MutipartBody(文件上传):关键方法:addFormPart()、 creatFormData()
Resquest:封装url、method。headers、requestBody
Call(interface):任务,让HttpEngine执行,ReallCall实现了它。
ReallCall:
HttpEngine:真正发送请求的,氢气的重发,核心方法SendResquest
HttpUrl:url的工具类
Header:请求、响应的头
Dns:解析域名
Connection:
ConnectionPool:管理Connecion
CallBack:回调
Address:封装每次请求的一些数据
Cache:缓存,用的开源库
Dispatcher:线程池:异步两种,同步一种;核心方法:executed
执行过程:OkHttpClient调用Dispatcher,Dispatcher 把ReallCall添加到队列中,(并挨个执行),ReallCall调用HttpEngine,构建COnnection,构建Resquest,调用COnnect方法,获取到最终的response(在ResponseBody中),再通过CallBack中的OnResponse方法拿到response