OkHttp 是一套处理 HTTP 网络请求的开源依赖框架,众所周知 Retrofit + OkHttp 现在几乎已经占据了所有的网络请求操作,已然成为了一种标配。因此这也是每个 Androider 必须要掌握的一项技能,了解其内部原理的实现可以更好的进行功能的扩展与封装,甚至可以自行优化。
OkHttp如何实现同步异步请求?
发送的同步/异步请求都会在dispatcher中管理其状态。
到底什么是 dispatcher ?
dispatcher的作用为维护请求的状态,并维护一个线程池,用于执行请求。
维护一个线程池 和 两个缓存队列(就绪等待缓存的异步请求队列、正在执行的请求队列)
异步请求为什么需要两个队列?
这类似于一个生产者-消费者模型。Dispatcher是生产者,ExecutorService是消费者池
OkHttp拦截器
拦截器是OkHttp中提供的一种强大机制,它可以实现网络监听、请求以及响应重写、请求失败重试等功能。