一.参考
拆*系列:拆 OkHttp
https://blog.piasy.com/2016/07/11/Understand-OkHttp/index.html
二.理解
1.okhttp通过责任链模式构造了一系列interceptor; 将Request请求转换为
Response返回; 其中每层的一个interceptor先尝试自己处理; 若处理未完成则交给下一个interceptor去处理.(会将自己处理的成果也传递到下一个interceptor).
- 整体上okhttp从上到下有:
(a)interceptors为应用拦截器,是用户可以选择自定义添加的拦截器.常可以设置用来统计客户端网络请求的发起情况.
(1)RetryAndFollowUpInterceptor负责重试和请求重定向;
(2)BridgeInterceptor负责对请求和响应进行改造转换
(3)CacheInterceptor负责缓存(用DiskLruCache对结果进行缓存)
(4)ConnectInterceptor负责和服务器建立连接(有连接池便于连接复用和加速连接建立)
(b) networkInterceptor是网络拦截器,使用后可以选择自定义的拦截器.常可以设置用来统计网络链路上的数据传输
(5) CallServerInterceptor负责请求服务器
另可参考:
1.【知识点】OkHttp 原理 8 连问
https://juejin.cn/post/7020027832977850381
2. 面试官:听说你熟悉OkHttp原理?
https://juejin.cn/post/6844904087788453896#heading-5