OkHttp3源码分析
本专栏对OkHttp3最新的版本v3.10.0进行分析,从源码中了解OkHttp的拦截器机制,任务队列分发机制,缓存机制和连接池链路复用等核心内容。
木大白易
我用双手成就你的梦想!
展开
-
从源码分析OkHttp3异步请求网络更新UI报错问题
前言前一段时间,在一个使用OkHttp进行异步请求网络,然后拿到返回结果进行UI界面的更新的时候,时不时的会报错闪退!出错代码在使用OkHttp进行异步请求网络的时候,然后更新UI的时候,是这样写的:OkHttpClient okHttpClient = new OkHttpClient();Request request = new Request.Builder() ...原创 2018-03-14 18:43:46 · 2884 阅读 · 1 评论 -
OkHttp3源码分析之拦截器Interceptor
前言在上一篇博客中,我们从源码分析了,一次异步网络请求的整个大概表面的流程,但是涉及到某些具体的内容呢,就直接带过了。本篇文章我们就先来了解一下在发起一次网络请求时,OkHttp是怎么发起请求获取响应的。这里边就涉及到OkHttp的一个很棒的设计——拦截器Interceptor。分析源码基于最新的版本:3.10.0。 还记得上一篇博客中一次异步任务中,到最后一步执行的代码吗? ...原创 2018-03-22 18:59:15 · 1138 阅读 · 0 评论 -
OkHttp3源码分析之任务队列Dispatcher
前言在前边,我们知道了整个OkHttp3发起一次网络请求的整个流程,还有分析了它的一个很棒的设计——拦截器/链。本篇文章主要了解在发起异步请求时,OkHttp3是怎么调度任务的,使其能够高效地执行异步任务。分析源码基于最新的版本:3.10.0。 我们先回到第一篇文章,在分析异步请求的回调方法执行的线程位置时: 首先RealCall#enqueue():@Overrid...原创 2018-03-28 14:06:25 · 1143 阅读 · 0 评论 -
OkHttp3源码分析之缓存Cache
前言网络请求在一个应用中的使用场景是非常多且频繁的,那么每次与服务器进行数据交互都去进行网络请求的话,会大大增大应用响应时间,最重要的非常浪费流量,所以缓存就特别重要了,相信大部分做开发的同学都比较熟悉这个过程了,每次需要数据交互的时候,先从本地/内存缓存读取,如果没有再去远程进行网络请求,并将其加入缓存中,一些比较知名的涉及到网络请求的框架一般都会有相应的缓存处理,有的不仅有二级缓存,还有三...原创 2018-04-04 16:47:17 · 1033 阅读 · 0 评论