okHttp
文章平均质量分 88
weixin_43298955
这个作者很懒,什么都没留下…
展开
-
OkHttp3笔记---CacheInterceptor
CacheInterceptor概览 CacheInterceptor的作用为将Http的请求结果放到到缓存中,以便在下次进行相同的Http请求时,直接从缓存中读取结果,避免进行耗时的Http请求。OkHttp3使用缓存的方式如下:val client:OkHttpClient by lazy { private var file = context.externalCacheDir OkHttpClient.Builder() //缓存大小为10M .原创 2021-05-07 22:19:09 · 239 阅读 · 2 评论 -
OkHttp3笔记----CallServerInterceptor
在上一篇ConnectInterceptor,介绍了Http的连接过程。本篇将介绍Http如何发送和接收数据,在OkHttp中,CallServerInterceptor用来发送和接收数据。接下来以Http2.0,介绍数据发送接收的大体过程,在Http2.0协议中,数据会被封装成数据帧进行发送。CallServerInterceptor概览: Http2Connection:表示了一个Http连接,包含了Http2Writer,其负责将数据帧发送给服务器,Http2Reader其负责接...原创 2021-03-03 23:32:03 · 474 阅读 · 1 评论 -
OkHttp3笔记---ConnectInterceptor
ConnectInterceptor的作用为建立客户端和服务端的Http连接,其中连接(RealConnection)是可以复用的(针对Http2.0协议)。获取Http连接的过程如下:首先,检查当前的RealCall是否含有可用的Http连接,若包含,则返回可以的连接。否则,检查连接池是否含有可用的连接,若有,则返回。若依然找不到可用的连接,则建立一个新的Http连接,并将其保存到连接池中。...原创 2021-03-03 11:41:27 · 351 阅读 · 0 评论 -
OkHttp3笔记---TaskRunner
TaskRunner为OkHttp中的网络通信创建线程,它使用一个线程池,创建线程用以处理OkHttp交付的网络通信任务。一、TaskRunner概览 BackEnd:网络任务的处理器,用于处理网络任务。它包含了一个线程池,此线程池的核心线程数量为0,最大线程数量为Integer.MAX_VALUE,任务队列为一个容量为0的阻塞队列。 Task:网络任务 TaskQueue:是一个任务队列,包含了多个网络任务,对网络任务进行管理 readyQueues:就...原创 2021-03-02 18:40:16 · 1067 阅读 · 0 评论