我们平时在开发Android应用的时候不可避免地都需要用到网络技术,而多数情况下应用程序都会使用HTTP协议来发送和接收网络数据。Android系统中主要提供了两种方式来进行HTTP通信,HttpURLConnection和HttpClient,几乎在任何项目的代码中我们都能看到这两个类的身影,使用率非常高。不过HttpURLConnection和HttpClient的用法还是稍微有些复杂的,如果不进行适当封装的话,很容易就会写出不少重复代码。Android开发团队也是意识到了有必要将HTTP的通信操作再进行简单化,于是在2013年Google I/O大会上推出了一个新的网络通信框架——Volley。既可以非常简单地进行HTTP通信,也可以轻松加载网络上的图片。除了简单易用之外,Volley在性能方面也进行了大幅度的调整,它的设计目标就是非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如说下载文件等,Volley的表现就会非常糟糕。
下面来说说Volley的用法:
1.获取到一个RequestQueue对象,这里拿到的RequestQueue是一个请求队列对象,它可以缓存所有的HTTP请求,然后按照一定的算法并发地发出这些请求。
2.创建一个StringRequest对象用来发出一条HTTP请求,StringRequest的构造函数需要传入三个参数,第一个参数就是目标服务器的URL地址,第二个参数是服务器响应成功的回调,第三个参数是服务器响应失败的回调。
3.将这个StringRequest对象添加到RequestQueue里面
//1.获取一个RequestQueue对象
RequestQueue mRequestQueue = Volley.newRequestQueue(context);
//2.创建一个StringRequest对象
StringRequest stringRequest = new StringRequest(Request.Method.POST, "http://www.baidu.com", new Response.Listener<String>() {
@Override
public void onResponse(String response) {
//服务器响应成功,将服务器返回的响应转换成一个Java Bean通过EventBus传递给事件监听处理
EventBus.getDefault().post(new ResultBeen(response));
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//服务器响应失败,将服务器返回的响应转换成一个Java Bean通过EventBus传递给事件监听处理
EventBus.getDefault().post(new ResultBeen(error.getMessage()));
}
});
//3.将StringRequest对象添加到RequestQueue里面
mRequestQueue.add(stringRequest);
Java Bean代码:
public class ResultBeen {
private int result;
private String response;
public ResultBeen(String response) {
this.response =response;
}
public int getResult() {
return result;
}
public void setResult(int result) {
this.result = result;
}
public String getResponse() {
return response;
}
@Override
public String toString() {
return response;
}
}
事件监听处理:
@DebugLog
public void onEventMainThread(ResultBeen event) {
this.tv_result.setText(event.getResponse());
}
4.另外,由于Volley是要访问网络的,因此千万不要忘记在你的AndroidManifest.xml中添加如下权限
<uses-permission android:name="android.permission.INTERNET" />
分享到:
相关推荐
Android volley 网络框架学习 Android volley 网络框架学习
今天学习使用了网络加载库Volley,先说下Volley库的地址: https://github.com/mcxiaoke/android-volley。这里是一个VolleyDemo。
Volley学习demo,包含volley的网络请求,图片下载
亲自测试可以使用(我用于加载网络图片),我是写毕业设计完成一个app时需要用到,但网络上下载volley的jar包处处都需要积分/币,现在我拿到了这个资源,我免费分享给想了解学习volley的你们 ----------------------...
利用google的最新网络框架volley加载图片的demo
包含: android volley框架相册源码,帮助volley使用 配置安全文件android:networkSecurityConfig 包含:php后台接口,帮助初学者学习jsonobject,jsonarray结构 包含:linux文件资源,配置资源到指定linux目录...
Volley框架的使用,包括网络请求方式的使用,图片加载和图片缓存,Volley与Activity生命周期联动,非常适合新手学习。
github上的volley源代码,供大家学习参考。
使用volley实现图片的下载和缓存,优化后的瀑布流布局,(ps:还不了解volley,那你就out了,赶快下载来学习一下吧)
经过前面两篇文章的学习,我们已经掌握了Volley各种Request的使用方法,包括StringRequest、JsonRequest、ImageRequest等。其中StringRequest用于请求一条普通的文本数据,JsonRequest(JsonObjectRequest、...
该框架封装的扩展性很强,支持OkHttp,Volley里面也封装了ImageLoader,自身作为图片加载框架,不过这块功能没有一些专门的图片加载框架强大,对于简单的需求可以使用,对于稍复杂点的需求还是需要用到专门的图片...
这是基于Volley框架开发的,可以加载网络图片的demo,希望可以帮助学习的人!
内容很少,但是例子经典容易理解,android学习者,需要就下载呗!
android Volley jar包资源下载啦,直接下载就能用了哦,详细教程的话也可以私聊我哈,欢迎一起学习android开发
Android学习笔记 > 十年生死两茫茫,不思量,自难忘,华年短暂,陈辞岁月悠悠伤, > 满腔热血已芜荒,展未来,后生强,战战兢兢,如履薄冰心彷徨, > 青丝化雪、鬓角成霜,已是英雄迟暮,人生怎慷慨激昂? 目录 ...
这个demo实现了volley和 async请求远程的json数据,并填充listview。通过学习这些代码,你能很清楚的了解到volley和 async的区别。教程在这里:http://cym.so/2014/07/05/volley-android/
Google IO新提出的Volley,这个一个Volley测试例子,共同学习共同进步
Android广告条效果--使用Volley实现网络图片的自动轮播(仿淘宝、网易广告页轮播效果)绝对详细的网络图片自动轮播效果.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。