Volley——阅读梳理

用一个月的下班之后玩耍时间的空余,阅读了Volley的源码,前面也记录了阅读过程,这篇旨在梳理一下Volley的工作流程。

通常,我们使用Volley,流程是很简单的。创建一个Request,再新建一个RequestQueue,最后把Request加入到RequestQueue中,接着我们就可以等待请求的Response了,如果是StringRequest这样的请求,我们可以直接得到String类型的Response。

那么,RequestQueue是怎样轮循到Request,Request又是怎样发送http请求,然后得到响应,将响应一步步转化成Response,最后,Response又是怎样变成了最终的String的,前面的文章中一行一行地阅读了这些代码,这里做一个小小的总结。

1.RequestQueue是一个阻塞型队列,当有请求时,它就会去发请求,没请求时,它就会阻塞它所在的线程。所以,只要有请求加入RequestQueue,它就会工作,队列为空时,就在等待请求。

2.请求首先会在HttpStack完成connection等相关过程,包括加cookie,判断请求类型,为post请求body添加Params。最终会得到一个HttpResponse。

3.HttpResponse会交给Network进行处理,Network主要处理http请求的响应,包括20X,304,404这样的异常响应。然后,从HttpResponse中抽出header和content,创建出NetworkResponse。

4.上面2.3的方法都是在NetworkDispatcher中执行的,完成之后,Response<?> response = request.parseNetworkResponse(networkResponse);会将NetworkResponse转化为Response,这个实现在Request中,在这里调用。

5.同时,在在NetworkDispatcher中,ExecutorDelivery会接受request和response,并调用mRequest.deliverResponse(mResponse.result);生成String类型的响应。

以上就是一次Volley请求的大致流程。

Done~

时间: 2024-01-07 06:16:25

Volley——阅读梳理的相关文章

《构建之法》阅读梳理篇读后感

我通过老师发的链接读了“<构建之法>阅读梳理篇”,我从中懂了很多,我懂了软件与程序的区别,明白了作为一个程序员是要掌握的基本能力,更明白了一个软件或项目是由一个团队完成的,个人的能力再强也强不过一个团体.在这篇文章中我明白了很多,同时我也对我日后可能要做的工作有了更全面的了解,也令我看清了程序员这个工作的前景和工作方式,更令我看清了自己的缺点和不足.我要以这篇文章里的要求去要求自己,向真正的程序员努力. http://www.cnblogs.com/lwr-/p/5199030.html?fr

Hive cli源码阅读和梳理

对Cli的重新认识*). hive cli有两种模式, 本地模式: 采用持有的driver对象来处理, 远程模式: 通过连接HiveServer来实现, 由此可见之前的架构图中的描述还是模糊且带有误导性*). 支持singal的处理支持, 比如对ctrl+c中断, 需要两次才完全退出交互*). 交互式命令处理模式源码阅读*). Signal类对象的使用,Singal静态函数 Signal.handle(Singal singla, SingalHandler handler);对signal函数

【第六篇】Volley代码修改之图片二级缓存以及相关源码阅读(重现ImageLoader.ImageCache)

前面http://www.cnblogs.com/androidsuperman/p/8a157b18ede85caa61ca5bc04bba43d0.html 有讲到使用LRU来处理缓存的,但是只是处理内存里面的缓存,没进行文件缓存和处理,那么如何实现Volley在本地的缓存呢 一般硬盘缓存使用com.jakewharton.disklrucache.DiskLruCache这个Lru缓存,具体代码在 https://github.com/JakeWharton/DiskLruCache/tr

行测(基础篇)之汉语语法与阅读习惯梳理

一.词性和语法结构 1.词性 实词(具有实际意义的词):名词.动词.形容词.数词.量词.代词. 虚词(没有具体意义的词):副词(很.非常).连词.介词(在.于).助词(的).叹词.拟声词. 2.语法结构 主语(状语)谓语 (补语) (定语) 宾语    傅园慧使出洪荒之力.(主谓宾)    "傅园慧(真的)使出(了)(自己的)洪荒之力" 主语:名词.代词 谓语:动词.形容词 宾语:名词.代词 定语:形容词.名词.代词.数量词 状语:副词.形容词 补语:形容词.动词 3.例题 二.易混淆

[转]Android Volley完全解析(四),带你从源码的角度理解Volley

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17656437 经过前三篇文章的学习,Volley的用法我们已经掌握的差不多了,但是对于Volley的工作原理,恐怕有很多朋友还不是很清楚.因此,本篇文章中我们就来一起阅读一下Volley的源码,将它的工作流程整体地梳理一遍.同时,这也是Volley系列的最后一篇文章了. 其实,Volley的官方文档中本身就附有了一张Volley的工作流程图,如下图所示. 多数朋友突然看到一张这样

Android Volley完全解析(四),带你从源码的角度理解Volley

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17656437 经过前三篇文章的学习,Volley的用法我们已经掌握的差不多了,但是对于Volley的工作原理,恐怕有很多朋友还不是很清楚.因此,本篇文章中我们就来一起阅读一下Volley的源码,将它的工作流程整体地梳理一遍.同时,这也是Volley系列的最后一篇文章了. 其实,Volley的官方文档中本身就附有了一张Volley的工作流程图,如下图所示. 多数朋友突然看到一张这样

Android 网络框架 volley源码剖析

转载请注明出处:  http://blog.csdn.net/guolin_blog/article/details/17656437 经过前三篇文章的学习,Volley的用法我们已经掌握的差不多了,但是对于Volley的工作原理,恐怕有很多朋友还不是很清楚.因此,本篇文章中我们就来一起阅读一下Volley的源码,将它的工作流程整体地梳理一遍.同时,这也是Volley系列的最后一篇文章了. 其实,Volley的官方文档中本身就附有了一张Volley的工作流程图,如下图所示. 多数朋友突然看到一张

Volley框架源码浅析(一)

尊重原创http://blog.csdn.net/yuanzeyao/article/details/25837897 从今天开始,我打算为大家呈现关于Volley框架的源码分析的文章,Volley框架是Google在2013年发布的,主要用于实现频繁而且粒度比较细小的Http请求,在此之前Android中进行Http请求通常是使用HttpUrlConnection和HttpClient进行,但是使用起来非常麻烦,而且效率比较地下,我想谷歌正式基于此种原因发布了Volley框架,其实出了Voll

Android应用开发:网络工具——Volley(二)

引言 在Android应用开发:网络工具--Volley(一)中结合Cloudant服务介绍了Volley的一般使用方法.当中包括了两种请求类型StringRequest和JsonObjectRequest.一般的请求任务相信都能够通过他们完毕了,只是在千变万化的网络编程中,我们还是希望能够对请求类型.过程等步骤进行全然的把控.本文就从Volley源代码角度来分析一下.一个网络请求在Volley中是怎样运作的.也能够看作网络请求在Volley中的生命周期. 源头RequestQueue 在使用V