Okhttp
分析okhttp
Red风信子
厚积而薄发
展开
-
关于Okhttp3(四)api使用
简介Okhttp是square公司推出的一款Android和Java网络请求库,当前推出了Okhttp3,在原来的基础上做了很大改进,也是Android目前最流行的网络库之一,本系列文章就是基于最新的来剖析。鉴于能力以及代码的优化改动,文中如有不足之处还望指教,谢谢。api使用Android使用注意申请网络权限,同时不能在主线程请求同步请求executeprivate static void executeRequest() throws Exception { OkHtt原创 2020-10-19 11:58:04 · 1256 阅读 · 0 评论 -
关于Okhttp3(二)介绍
对于开发者来说优秀的源码是最好的学习资源。通过阅读优质源码就相当于和大牛有一次对话。OkHttp是支持HTTP和HTTP/2的网络请求框架。自从Android4.4开始,Google已经开始将源码中的HttpURLConnection替换为OkHttp,而在Android6.0之后的SDK中google更是移除了对于HttpClient的支持,在项目中用的比较多的Retrofit同样是对OkHttp进行再次封装而来的。Okhttp3中提供了Builder,很好的使用了创建者设计模式。Okhttp3.1.原创 2020-10-16 15:40:45 · 219 阅读 · 0 评论 -
关于Okhttp3(一)源码编译
一 okhttp3源码1.1 源码版本说明github源码地址源码分支4.x后使用kotlin后续文章分析使用okhttp_3.14.x分支1.2 源码编译1.2.1 工具选择Okhttp3 工程不是Android工程,不要用Android Studio打开,不要用Android Studio打开,不要用Android Studio打开。查看此源码的最好工具是IntelliJ IDEA。下载、安装IntelliJ IDEA请自行研究,没有什么难的。1.2.2 导入源码打开IDEA(第一次原创 2020-10-16 10:57:13 · 1418 阅读 · 0 评论 -
Okhttp3网络请求框架+MVP设计模式简单实战
Okhttp目前最新版本的是okhttp:3.4.1,也称为Okhttp3。 OkHttp是一个精巧的网络请求库,不仅在接口封装做的简单易用,在底层实现上也自成一派。比起原生的HttpURLConnection有过之而无不及,现在已经成为广大开发者的首选网络通讯库。特性支持http2,对一台机器的所有请求共享同一个socket内置连接池,支持连接复用,减少延迟支持透明的gzip压缩响...转载 2018-10-31 10:05:23 · 323 阅读 · 0 评论 -
OkHttp3的源码探究(一)okHttp的使用场景
版权声明:本文为博主原创文章,转载请注明出处。一、前言对于开发者来说优秀的源码是最好的学习资源。通过阅读优质源码就相当于和大牛有一次对话。OkHttp是支持HTTP和HTTP/2的网络请求框架。自从Android4.4开始,Google已经开始将源码中的HttpURLConnection替换为OkHttp,而在Android6.0之后的SDK中google更是移除了对于HttpClient...转载 2018-10-22 21:48:48 · 388 阅读 · 0 评论 -
关于Okhttp3(八)-CallServerInterceptor
本系列文章终于要到尾声了。上篇我们已经成功连接到服务了,那解析来应该做什么呢,相比聪明的你已经猜到了,那就是发送接收数据。读写数据第一步,写入请求头 第二步,写入请求头 第三步,读取响应头 第四步,读取响应体前面我们已经说过,okhttp的流程是完全独立的,同样读写数据也是交给相关的类来处理,这个类就是HttpCodec(解码器)源码 1234567...原创 2018-10-08 18:00:55 · 375 阅读 · 0 评论 -
关于Okhttp3(七)-ConnectInterceptor
上篇我们将来缓存拦截器,鉴于本系列是将Okhttp的所以就没有将太多关于缓存相关的东西,后面又机会在开一个系列。今天我们讲讲倒数第二个拦截器—连接拦截器,这才是真正的开始向服务端发起进攻,同志们是不是已经急不可耐了,哈哈,马上到来。源码获取到最初实例化的通道对象 得到一个httpcodec 得到一个连接对象 123456789101112 ...原创 2018-10-08 17:57:31 · 444 阅读 · 0 评论 -
关于Okhttp3(五)-BridgeInterceptor
上一篇我们讲了Okhttp3请求你流程中的第一个拦截器BridgeInterceptor,其中初始化好一个socket连接对象后,随即将进行下一个流程,即今天要讲的BridgeInterceptor(桥接拦截)。功能本拦截器的主要功能是:处理请求头(header),将自定义的头和协议必须的头合在一起,如果有自定义使用自定义的,没有就生成默认头源码 12345...原创 2018-10-08 17:54:00 · 230 阅读 · 0 评论 -
关于Okhttp3(六)-CacheInterceptor
现在的app没有几个是不联网的了,在流量费用很高、速度一般的今天给用户合理节省流量,以及提高响应速度就显得尤为重要了。所以一个优秀的app都会在发展到一定程度后就会开始引入缓存,什么是缓存呢?百度百科:缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用...原创 2018-10-08 17:53:16 · 189 阅读 · 0 评论 -
关于Okhttp3(四)-RetryAndFollowUpInterceptor
RetryAndFollowUpInterceptor前文讲解了整体流程,今天进入第一个拦截器RetryAndFollowUpInterceptor。官网解释如下: 12 > This interceptor recovers from failures and follows redirects as necessary. It may...原创 2018-10-08 17:45:13 · 257 阅读 · 0 评论 -
关于Okhttp3(三)--请求流程
前两天我们介绍了,基本使用和如何查看源码,今天我们正式进入源码分析流程。流程图首先我们先看一看它的请求流程,在Okhttp3中请求是基于拦截器原理,源代码如下:源码路径:okhttp3/RealCall.java 123456789101112131415161718192021222324252627 ...原创 2018-10-08 17:28:36 · 1287 阅读 · 0 评论 -
OkHttp3 框架学习
1.Okhttp介绍android网络框架Okhttp,是轻量级框架,由移动支付Square公司贡献优点:允许连接到同一个主机地址的所有请求,提高请求效率共享Socket,减少对服务器的请求次数通过连接池,减少了请求延迟缓存响应数据来减少重复的网络请求减少了对数据流量的消耗自动处理GZip压缩功能:get,post请求文件的上传下载加载图片支持请求回调,直接返回对象、对象...转载 2018-10-14 16:17:31 · 617 阅读 · 0 评论 -
关于Okhttp(三)基本使用
简介Okhttp是square公司推出的一款Android和Java网络请求库,当前推出了Okhttp3,在原来的基础上做了很大改进,也是Android目前最流行的网络库之一,本系列文章就是基于最新的来剖析。鉴于能力以及代码的优化改动,文中如有不足之处还望指教,谢谢。特点Http/2支持多路复用 采用连接池减少请求延时 支持GZIP压缩 响应缓存 支持websocket ...原创 2018-10-01 01:32:00 · 683 阅读 · 0 评论