基于Android Volley的网络请求工具
基于Android Volley的网络请求工具。
一、说明
AndroidVolley,Android Volley核心库及扩展工程。
AndroidVolleySample,网络请求工具示例工程。
Release,jar包。直接下载
二、Volley基本处理流程:
1、应用初始化Volley。
2、Volley创建一个RequestQueue、NetworkDispatcher组及Network。
3、RequestQueue即一个Request队列,RequestQueue会创建一个ExecutorDelivery。
4、NetworkDispatcher实质是Thread,从RequestQueue中取Request,通过Network加以执行。
5、Network负责网络请求处理,具体过程交给HttpStack处理。
6、HttpStack分HttpURLConnection(SDK_INT>=9)与HttpClient与两种方式。
7、ExecutorDelivery负责处理请求结果,并与主线程进行交互。
8、Volley在上述2-7的基础上增加了Cache等附加处理环节。
三、网络请求工具
在AndroidVolley基础上扩展了com.android.http包,增加了ByteArrayRequest及RequestManager,方便字符数据类型(JSON/XML)的网络请求。
1.初始化RequestManager
public class VolleyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
RequestManager.getInstance().init(this);//初始化工具
}
@Override
public void onTerminate() {
super.onTerminate();
}
}
2.使用RequestManager
public class MainActivity extends Activity {
private LoadControler loadControler = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
testPost();
testGet();
}
/**
* POST请求测试
*/
private void testPost() {
loadControler = RequestManager.getInstance().post("http://allthelucky.ap01.aws.af.cm/memoServer", null, requestListener, 0);
}
/**
* GET请求测试
*/
private void testGet() {
loadControler = RequestManager.getInstance().get("http://allthelucky.ap01.aws.af.cm/memoServer", requestListener, 1);
}
/**
* 数据响应监听
*/
private RequestListener requestListener = new RequestListener() {
@Override
public void onRequest() {
System.out.println("onReqeust, start");
}
@Override
public void onSuccess(String response, String url, int actionId) {
System.out.println("actionId:"+actionId+", OnSucess!\n"+response);
}
@Override
public void onError(String errorMsg, String url, int actionId) {
System.out.println("actionId:"+actionId+", onError!\n"+errorMsg);
}
};
@Override
public void onBackPressed() {
super.onBackPressed();
loadControler.cancel();
}
}
http://git.oschina.net/winfirm/android-volley-manager
基于Android Volley的网络请求工具的更多相关文章
- 基于AFNetworking封装的网络请求工具类【原创】
今天给大家共享一个我自己封装的网络请求类,希望能帮助到大家. 前提,导入AFNetworking框架, 关于修改AFN源码:通常序列化时做对text/plan等的支持时,可以一劳永逸的修改源代码,在a ...
- (转载)Android之三种网络请求解析数据(最佳案例)
[置顶] Android之三种网络请求解析数据(最佳案例) 2016-07-25 18:02 4725人阅读 评论(0) 收藏 举报 分类: Gson.Gson解析(1) 版权声明:本文为博主原创 ...
- 网络请求工具 cURL
网络请求工具 cURL 2017-08-16 cRUL 是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在“标准输出”(stdout)上面. 查看网页源码 1 $ curl baidu. ...
- 【Android】Volley做网络请求的几种用法
前言: 最近在将自己写的烂代码重构,以前使用的网络请求全是基于apache的HttpClient,简单使用还好,使用多了发现重复代码太多,而且每次使用都很繁琐,因此在网上找了半天网络请求的相关类库,最 ...
- Android之三种网络请求解析数据(最佳案例)
AsyncTask解析数据 AsyncTask主要用来更新UI线程,比较耗时的操作可以在AsyncTask中使用. AsyncTask是个抽象类,使用时需要继承这个类,然后调用execute()方法. ...
- [转]Android各大网络请求库的比较及实战
自己学习android也有一段时间了,在实际开发中,频繁的接触网络请求,而网络请求的方式很多,最常见的那么几个也就那么几个.本篇文章对常见的网络请求库进行一个总结. HttpUrlConnection ...
- Android 几种网络请求的区别与联系
HttpUrlConnection 最开始学android的时候用的网络请求是HttpUrlConnection,当时很多东西还不知道,但是在android 2.2及以下版本中HttpUrlConne ...
- Android 各大网络请求库的比较及实战
自己学习android也有一段时间了,在实际开发中,频繁的接触网络请求,而网络请求的方式很多,最常见的那么几个也就那么几个.本篇文章对常见的网络请求库进行一个总结. HttpUrlConnection ...
- nginx android app 慢网络请求超时
最近遇到了android 在慢网络下面请求服务器报 java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by ...
随机推荐
- 关于margin-top失效的解决方法
常出现两种情况:(一)margin-top失效 先看下面代码: <div><div class="box1" >float:left</div> ...
- 三、C# 运算符和控制流
通常运算符划分为3大类: 一元运算符.二元运算会.三元运算符,它们对应的操作数分别是1个.2个.3 个. 结合性和优先级顺序. 二元运算会是从左向右结合的,相反赋值运算符是从右向左结合的. cha ...
- 【HAOI2011】向量
[题目描述] 给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出另一个 ...
- UVA 10254 - The Priest Mathematician (dp | 汉诺塔 | 找规律 | 大数)
本文出自 http://blog.csdn.net/shuangde800 题目点击打开链接 题意: 汉诺塔游戏请看 百度百科 正常的汉诺塔游戏是只有3个柱子,并且如果有n个圆盘,至少需要2^n- ...
- 试用ubuntu-12.04.3-desktop-amd64(二)
首先说明,采用主机+虚拟机+ubuntu的形式,更具体的则为Win7-64bit + VMWare + ubuntu-12.04.3-desktop-amd64 进入ubuntu后首先考虑到的就是怎么 ...
- centos 6.5 服务器安装 (LNMP ntfs文件支持 PHP-RPM CHROOT沙盒)
centos 6.5 最小化安装 进入系统 手动开启网卡 #ifconfig eth0 //(默认会自动获得ip) 修改网站配置文件,默认开启 #cd /etc/sysconfig/ne ...
- jquery如何判断滚动条滚到页面底部并执行事件
首先理解三个dom元素,分别是:clientHeight.offsetHeight.scrollTop. clientHeight:这个元素的高度,占用整个空间的高度,所以,如果一个div有滚动条,那 ...
- bestcoder单调区间
http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=584&pid=1006 题解:ORZ Matrix67 ht ...
- connect函数
TCP客户用connect函数来建立与TCP服务器的连接 int connect (int sockfd, const sockaddr * servaddr, socklen_t addrlen); ...
- Keil增量编译build异常
装完MDK4.6/4.7a,发现没有修改源文件的情况下,单击build,每次都是重新编译,之前测试过重新建立工程/装回4.22,解决了该问题,当时并没多想原因.这次又出现了这个问题,重装了很久,也都这 ...