Volley的简单介绍

Android系统中主要提供了两种方式来进行HTTP通信,HttpURLConnectionHttpClient,几乎在任何项目的代码中我们都能看到这两个类的身影,使用率非常高。

不过HttpURLConnectionHttpClient的用法还是稍微有些复杂的,如果不进行适当封装的话,很容易就会写出不少重复代码。于是乎,一些Android网络通信框架也就应运而生

 

于是在2013Google I/O大会上推出了一个新的网络通信框架——VolleyVolley可是说是把AsyncHttpClientUniversal-Image-Loader的优点集于了一身,既可以像AsyncHttpClient一样非常简单地进行HTTP通信,也可以像Universal-Image-Loader一样轻松加载网络上的图片。除了简单易用之外,Volley在性能方面也进行了大幅度的调整,它的设计目标就是非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如说下载文件等,Volley的表现就会非常糟糕。

1.下载Volley

下载地址是:http://www.kwstu.com/ResourcesView/kwstu_201441183330928 

新建一个Android项目,将volley.jar文件复制到libs目录下,这样准备工作就算是做好了

2.StringRequest的用法

RequestQueue mQueue = Volley.newRequestQueue(context);

注意这里拿到的RequestQueue是一个请求队列对象,它可以缓存所有的HTTP请求,然后按照一定的算法并发地发出这些请求。RequestQueue内部的设计就是非常合适高并发的,因此我们不必为每一次HTTP请求都创建一个RequestQueue对象,这是非常浪费资源的,基本上在每一个需要和网络交互的Activity中创建一个RequestQueue对象就足够了。

1. StringRequest stringRequest = new StringRequest("http://www.baidu.com",  

2.                         new Response.Listener<String>() {  

3.                             @Override  

4.                             public void onResponse(String response) {  

5.                                 Log.d("TAG", response);  

6.                             }  

7.                         }, new Response.ErrorListener() {  

8.                             @Override  

9.                             public void onErrorResponse(VolleyError error) {  

10.                                 Log.e("TAG", error.getMessage(), error);  

11.                             }  

12.                         });  

1.                           }  

 

可以看到,这里new出了一个StringRequest对象,StringRequest的构造函数需要传入三个参数,第一个参数就是目标服务器的URL地址,第二个参数是服务器响应成功的回调,第三个参数是服务器响应失败的回调。其中,目标服务器地址我们填写的是百度的首页,然后在响应成功的回调里打印出服务器返回的内容,在响应失败的回调里打印出失败的详细信息。

 

最后,将这个StringRequest对象添加到RequestQueue里面就可以了,如下所示

mQueue.add(stringRequest);

另外,由于Volley是要访问网络的,因此不要忘记在你的AndroidManifest.xml中添加如下权限:<uses-permission android:name="android.permission.INTERNET" />

 

这样的话,一个最基本的HTTP发送与响应的功能就完成了。你会发现根本还没写几行代码就轻易实现了这个功能,主要就是进行了以下三步操作:

1. 创建一个RequestQueue对象。

2. 创建一个StringRequest对象。

3. StringRequest对象添加到RequestQueue里面

Android系统中主要提供了两种方式来进行HTTP通信,HttpURLConnectionHttpClient,几乎在任何项目的代码中我们都能看到这两个类的身影,使用率非常高。

不过HttpURLConnectionHttpClient的用法还是稍微有些复杂的,如果不进行适当封装的话,很容易就会写出不少重复代码。于是乎,一些Android网络通信框架也就应运而生

 

于是在2013Google I/O大会上推出了一个新的网络通信框架——VolleyVolley可是说是把AsyncHttpClientUniversal-Image-Loader的优点集于了一身,既可以像AsyncHttpClient一样非常简单地进行HTTP通信,也可以像Universal-Image-Loader一样轻松加载网络上的图片。除了简单易用之外,Volley在性能方面也进行了大幅度的调整,它的设计目标就是非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如说下载文件等,Volley的表现就会非常糟糕。

1.下载Volley

下载地址是:http://www.kwstu.com/ResourcesView/kwstu_201441183330928 

新建一个Android项目,将volley.jar文件复制到libs目录下,这样准备工作就算是做好了

2.StringRequest的用法

RequestQueue mQueue = Volley.newRequestQueue(context);

注意这里拿到的RequestQueue是一个请求队列对象,它可以缓存所有的HTTP请求,然后按照一定的算法并发地发出这些请求。RequestQueue内部的设计就是非常合适高并发的,因此我们不必为每一次HTTP请求都创建一个RequestQueue对象,这是非常浪费资源的,基本上在每一个需要和网络交互的Activity中创建一个RequestQueue对象就足够了。

1. StringRequest stringRequest = new StringRequest("http://www.baidu.com",  

2.                         new Response.Listener<String>() {  

3.                             @Override  

4.                             public void onResponse(String response) {  

5.                                 Log.d("TAG", response);  

6.                             }  

7.                         }, new Response.ErrorListener() {  

8.                             @Override  

9.                             public void onErrorResponse(VolleyError error) {  

10.                                 Log.e("TAG", error.getMessage(), error);  

11.                             }  

12.                         });  

1.                           }  

 

可以看到,这里new出了一个StringRequest对象,StringRequest的构造函数需要传入三个参数,第一个参数就是目标服务器的URL地址,第二个参数是服务器响应成功的回调,第三个参数是服务器响应失败的回调。其中,目标服务器地址我们填写的是百度的首页,然后在响应成功的回调里打印出服务器返回的内容,在响应失败的回调里打印出失败的详细信息。

 

最后,将这个StringRequest对象添加到RequestQueue里面就可以了,如下所示

mQueue.add(stringRequest);

另外,由于Volley是要访问网络的,因此不要忘记在你的AndroidManifest.xml中添加如下权限:<uses-permission android:name="android.permission.INTERNET" />

 

这样的话,一个最基本的HTTP发送与响应的功能就完成了。你会发现根本还没写几行代码就轻易实现了这个功能,主要就是进行了以下三步操作:

1. 创建一个RequestQueue对象。

2. 创建一个StringRequest对象。

3. StringRequest对象添加到RequestQueue里面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值