OkHttp框架解析
xingfeng_coder
路漫漫其修远兮,吾将上下而求索
Gitbook地址:https://xingfeng.gitbook.io/hust
简书地址:https://www.jianshu.com/u/57f41372c68e
展开
-
使用OkHttp进行网络同步异步操作
OkHttp是一个Java和Android的HTTP和HTTP/2的客户端,负责发送HTTP请求以及接受HTTP响应。 一、使用OkHttpOkHttp发送请求后,可以通过同步或异步地方式获取响应。下面就同步和异步两种方式进行介绍。1.1、同步方式发送请求后,就会进入阻塞状态,知道收到响应。下面看一个下载百度首页的例子:OkHttpClient client = new OkHttpClient.原创 2016-11-06 10:59:23 · 26908 阅读 · 2 评论 -
深入理解OkHttp源码(二)——获取响应
首先先看一张流程图,该图是从拆轮子系列:拆 OkHttp 中盗来的,如下: 在上一篇博客深入理解OkHttp源码(一)——提交请求中介绍到了getResponseWithInterceptorChain()方法,本篇主要从这儿继续往下讲解。getResponseWithInterceptorChain方法private Response getResponseWithInterceptorC原创 2016-11-17 21:22:34 · 8978 阅读 · 3 评论 -
深入理解OkHttp源码(三)——网络操作
在深入理解OkHttp源码(一)——提交请求中,分析了同步、异步请求是如何经过Dispatcher到getResponseWithInterceptorChain()方法的;在深入理解OkHttp源码(二)——获取响应中,分析了请求是如何经过拦截器链处理得到最终的响应的。这篇博客侧重于了解OkHttp的网络部分,包括Socket的创建、连接,连接池等要点。OkHttp对Socket的流操作使用了Ok原创 2016-12-01 10:51:22 · 6439 阅读 · 2 评论 -
深入理解OkHttp源码(四)——缓存
OkHttp根据HTTP头部中的CacheControl进行缓存控制,而缓存的具体实现是使用的JakeWharton大神的DiskLruCache。 Cache-ControlHTTP中的Cache-Control首部HTTP头部中的Cache-Control首部可以指示对应请求该如何获取响应,比如应该直接使用缓存的响应还是应该从网络获取响应;可以指示响应该如何缓存,比如是否应该缓存下来还是设置一原创 2016-12-08 09:41:27 · 2971 阅读 · 3 评论 -
深入理解OkHttp源码(一)——提交请求
本篇文章主要介绍OkHttp执行同步和异步请求的大体流程。主要流程如下图: 主要分析到getResponseWidthInterceptorChain方法,该方法为具体的根据请求获取响应部分,留着后面的博客再介绍。 Dispatcher类Dispatcher类负责异步任务的请求策略。首先看它的部分定义:public final class Dispatcher { private int原创 2016-11-12 15:30:52 · 3434 阅读 · 1 评论