Android网络框架
文章平均质量分 67
黄二小二
这个作者很懒,什么都没留下…
展开
-
okhttp3-源码解析(5) CacheInterceptor
okhttp提供了让我们实现缓存的方法和接口,这部分的处理是发生在CaCheInterceptor拦截器中的。这个缓存其实就是把服务器穿回来的响应存储在本地(可以是内存也可以在磁盘),当我们再次准备向服务器发送请求时,就可以直接获取缓存中的响应,而不必再次向服务器发出网络请求。但是缓存的资源可能是会过期的,所以需要相应的机制能够验证缓存的正确性。在分析CaCheInterceptor之前,先总结一下Http中缓存的相关实现。Http缓存...原创 2021-12-23 22:05:55 · 1511 阅读 · 0 评论 -
okhttp3-源码分析(4) BridgeInterceptor
BridgeInterceptor是位于重定向拦截器之后的第一个拦截器,也就是说在okhttp默认实现的5个拦截器中的第一个。他的作用,顾名思义就是用户程序层面和网络层面的桥梁。他会根据用户请求来构建真正要用到的网络请求,又会根据服务器返回的网络请求,来构建用户层面的请求。从源代码分析,以小一点的视角看,他其实主要就是对请求报文的首部行做一些的设置,对响应报文可能出现需要解压文件的情况,进行解压。另一方面,okhttp中对cookie的相关设置也在这个拦截器中完成,okhttp是默认不使用cookie原创 2021-12-13 10:34:38 · 2230 阅读 · 0 评论 -
okhttp3-源码分析(3) RetryAndFollowUpInterceptor
如果没有添加自定义拦截器的话,RetryAndFollowUpInterceptor是okhttp拦截器链中的第一个拦截器。大体总结一下他的职责:发送请求前:1.为请求流程创建StreamAllocation(与连接工作有关)2.提供了cancel()方法来关闭连接发送请求后:1.在接收到response后,负责请求请求的重定向和重试工作相关处理逻辑:状态码问题原因okhttp处理逻辑408请求超时只在返回的超时时间为0时(希望立即重试),重试一次401,40原创 2021-12-12 22:49:13 · 1496 阅读 · 0 评论 -
okhttp3-源码分析(2) 拦截器链的实现
拦截器链(Interceptor)应该是okhttp框架的核心之一。责任链模式okhttp的请求拦截器的实现是一种典型的责任链模式,在okhttp中有一个Interceptor接口,默认的拦截器和我们自定义的拦截器都要实现这个接口。Interceptor接口内部还有一个内部接口Chain。在okhttp中一般使用的是他的具体实现类RealInterceptorChain下面Interceptor接口的部分代码:public interface Interceptor { //chain里面包含re原创 2021-12-11 15:02:54 · 786 阅读 · 0 评论 -
okttp3-源码分析(1)execute()方法和enqueue()方法
最近在看okhttp源码,我们都知道okhttp是用来进行网络请求,下面就从最常用的execute()方法和enqueue()方法切入,来分析okhttp的请求过程。先来看okhttp的基本用法,之后的分析应该都会以基本用法来进行:String url = "http://wwww.baidu.com";//这里是URLOkHttpClient okHttpClient = new OkHttpClient();//先构建okhttp客户端final Request request = new Re原创 2021-12-08 17:43:32 · 1981 阅读 · 0 评论