Volley详解(三)——响应(Response)
来源:互联网 发布:5轴加工中心软件编程 编辑:程序博客网 时间:2024/05/13 06:21
概述
本篇介绍响应相关的类,包括NetworkResponse
,Response
,ResponseDelivery
,ExecutorDelivery
。
Part 1 ——NetworkResponse
表示网络请求返回的原始结果,比较简单,主要属性有:
int statusCode
:状态码byte[] data
:返回结果的主体部分Map<String, String> headers
:返回结果的头boolean notModified
:如果服务器返回304
,则该变量为true
,说明服务器数据在上次请求后没有变化long networkTimeMs
:此次网络请求花费的总时间
Part 2 ——Response
表示NetworkResponse
经过parse之后的响应,定义了内部接口Response<T>$Listener<T>
和Response<T>$ErrorListener
,分别负责响应结果和响应错误的回调。
主要属性有:
T result
:最终的返回结果 Cache.Entry cacheEntry
:缓存元信息 VolleyError error
:错误信息
如果正常返回,则error
为null
,否则,result
和cacheEntry
为null
。
Part 3 ——ResponseDelivery
处理返回结果的接口,定义了三个抽象方法:
public void postResponse(Request<?> request, Response<?> response);public void postResponse(Request<?> request, Response<?> response, Runnable runnable);public void postError(Request<?> request, VolleyError error);
postResponse()
用于处理正确的返回,postError()
用于处理错误的返回。
Part 4 ——ExecutorDelivery
这是Volley
中Delivery
的默认实现。
内部类ResponseDeliveryRunnable
定义了内部类ExecutorDelivery$ResponseDeliveryRunnable,该类继承了Runnable,其run()方法负责处理相关的回调,该Runnable并不会被直接调用,而是会被发送到主线程的消息队列中,等待主线程处理。它的构造函数为:
public ResponseDeliveryRunnable(Request request, Response response, Runnable runnable);
其中第三个参数runnable
是对该请求需要做的额外处理,如果没有则传入null
即可。
执行器
维护了执行器Executor mResponsePoster
,重写了execute()方法,唯一功能是将前述的Runnable
对象发送到Handler
所对应的消息队列,在Volley
的默认实现中,该Handler
为主线程的Handler
。
注意:这只是一个
Executor
接口,不是线程池,不会产生新的线程,它只负责把构造出来的Runnable
对象发送给主线程,仅此而已。
重写的方法
既然实现了ResponseDelivery
接口,显然要重写三个抽象方法,具体很简单,要做的就是调用mResponsePoster
的execute()
,把相应的Runnable
发送到主线程。
- Volley详解(三)——响应(Response)
- Laravel & Lumen RESTFul API 扩展包:Dingo API(三) —— Response(响应)
- Android Volley详解(三) 自定义Request
- HTTP响应代码中文详解(HTTP Response Status Code)
- response对象(响应对象)
- 响应报文(response message)
- 初识Volley(三)
- Volley(三)
- Android——Volley学习笔记(三)
- Volley源码解析(三)——图片加载
- Volley源码解析(三)——NetworkDispatcher
- Android 事件处理详解(三) —— 响应系统设置的事件[Configuration]
- (二)response(响应头)
- Volley详解(二)——请求(Request)
- Volley详解(四)——缓存(Cache)
- Volley详解(五)——网络(Network)
- Volley详解(一)——基本构架
- Volley框架解读(三)
- 20150814Oracle学习笔记
- memcpy 详解
- Tachyon在Spark中的作用(Tachyon: Reliable, Memory Speed Storage for Cluster Computing Frameworks 论文阅读翻译)
- linux学习笔记------网络命令---
- C++ string 用法详解
- Volley详解(三)——响应(Response)
- 简化多层分组关联计算的sql
- 路由器的原理及其配置(一)
- 基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用
- hdu 2255奔小康赚大钱 KM算法模板
- 图论算法
- SQL INSERT TO &UPDATE&DELETE
- 程序员都很闷骚
- usaco Mother's Milk individual report