okhttp 和 retrofit 源码解析系列导读

导读

现在的 Android 开发中,可用的网络框架多种多样:volleyokhttpretrofit 等等。现在越来越多的团队的网络框架大部分是用的 okhttp 或者 retrofit。所以基于这种现状,笔者在网络框架的源码接下中会对 okhttpretrofit 的源码进行分析。

首先我们来看到 okhttp 为何如此受欢迎:

  • 支持 HTTP1.0、HTTP1.1、SDPY 和 HTTP2.0 等协议
  • 缓存响应数据来减少重复的网络请求
  • 可以从很多常用的连接问题中自动恢复
  • 使用起来非常简单

okhttp 的源码解析系列文章中,笔者将会分为 3 篇文章来对 okhttp 的源码进行解析。这3篇源码解析的文章,解决的问题有:

  • okhttp 同步和异步请求的区别以及它们的执行流程解析。
  • okhttpDispatcher,分别对同步和异步请求的调度过程做一个解析。
  • okhttp 的拦截器链,笔者将会对框架内部的5个拦截器进行源码分析,首先从整体上分析它们是如何形成一条链的,而后再对这5个拦截器的功能从源码的角度进行一一解析,了解它们之间是如何进行配合的。

在学习这三篇文章之前,你需要做好以下准备:

  1. 学会 okhttp 的基本使用方法,懂得基本的同步和异步请求是如何使用的,本系列文章重点在源码讲解,对于使用部分只会简单涉及,并不会过多介绍。
  2. 知晓 Builder 模式的基本设计理念以及它的基本使用方法,因为 okhttp 用到了大量的 Builder 模式进行对象的构造。
  3. 本系列的源码基于 okhttp 3.10.0,目前的最新版本是 okhttp 3.12.1,版本之间的变化一般都很小,所以用哪个版本的都可以。需要说明一点是希望大家看的时候能一边看源码一边看博客,这样子效果更好,只看博客的话会比较的费劲。

附上 okhttpgithub 地址以及 okhttp 源码解析系列博客的超链接:

okhttp 的 github地址

okhttp源码解析(一):同步异步请求的执行流程分析、区别以及 Dispatcher 调度器的调度分析

okhttp源码解析(二):okhttp拦截器链的整体分析,以及对前三个内置拦截器的源码分析

okhttp源码解析(三):okhttp拦截器链后两个拦截器的源码分析

空格空格空格

接下来我们来说说 retrofit,严格意义上来说 retrofit 并不算一个框架,它其实是对网络框架的一个封装,它的内部是使用 okhttp 来实现的。retrofit 的最大特点就是它使用了注解的方式,内部通过反射机制来处理网络请求的访问,所以在学习 retrofit 源码的时候,你需要做好准备:

  1. 知晓 Java 的注解,对注解的概念以及自定义注解等有一定的了解。
  2. 了解 Java 的反射机制,知道在 Java 中是如何通过反射机制来获取注解信息的。
  3. 了解 okhttp 的执行流程,最好在分析过 okhttp 的源码之后再来进行 retrofit 的学习效果更佳。

最后附上 retrofitgithub 地址以及 retrofit 源码解析系列博客的超链接:

retrofit 的 github地址

retrofit源码解析:年后更新…

猜你喜欢

转载自blog.csdn.net/qq_38182125/article/details/86676958