摘要:
前言 在前面的文章中,我们介绍完了所有OkHttp自带的拦截器,再回顾一下整个拦截器责任链图: 在整个拦截器责任链中,用户还可以添加自定义的拦截器,有两个位置可以添加,对应的方法分别是: OkHttpClient.Builder::addInterceptor方法 fun addIntercepto 阅读全文
摘要:
前言 接下来我们要分析的是拦截器链上的最后一个拦截器CallServerInterceptor,它用于写入请求与获取响应,这里不需要再调用拦截器责任链的proceed方法,CallServerInterceptor在intercept方法中将自己的工作做完后,就直接将响应返回给上一拦截器。 Call 阅读全文
摘要:
前言 上一篇文章我们介绍了CacheInterceptor拦截器,这篇文章我们要介绍的拦截器是ConnectInterceptor,该拦截器的作用是获得一个健康可用的与目标服务器的连接,然后就将请求交给下一个拦截器处理。 该拦截器的内部实现非常的复杂,涉及到OkHttp许多的机制,例如路由选择机制、 阅读全文
摘要:
前言 上一篇文章,我们介绍了BridgeInterceptor,这一篇文章我们就来介绍CacheInterceptor,它与OkHttp的缓存机制有关。 在介绍OkHttp的缓存机制之前,我们先来了解下Http的缓存机制。 Http的缓存机制 缓存主要指代理服务器或客户端的磁盘中保存的资源副本,通过 阅读全文
摘要:
前言 上一篇文章,我们介绍了RetryAndFollowUpInterceptor拦截器,该拦截器的下一个拦截器就是BridgeInterceptor,本篇文章我们就对BridgeInterceptor进行一个介绍。 从BridgeInterceptor的名字可以看出,它起的是一个桥接的作用: 将用 阅读全文
摘要:
前言 在上一篇文章「探索OkHttp系列 (一) 请求的发起与响应」,我们介绍了请求的发起与响应的整个过程,在介绍请求响应的时候,最关键的点是拦截器机制与责任链模式,关于责任链模式在请求的响应中是如何运用的,我们已经在上篇文章讲述了,但是上篇文章没有去详细地介绍各个拦截器的作用,从这篇文章开始,我们 阅读全文
摘要:
前言 OkHttp是个人使用的比较多的网络请求库,但是一直没有探究它的实现原理,这次就对OkHttp的源码进行分析,探究其实现原理。 分析的okhttp源码版本:4.9.2。 基本使用 GET 同步地发起请求,会阻塞线程,不能直接在主线程当中调用 private fun getData() { th 阅读全文