码迷,mamicode.com
首页 > 移动开发 > 详细

弄明白android 网络库之Volley

时间:2014-12-21 22:09:28      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:google   网络   通信   源码   

1Volley是什么?

VolleyGoogle 官方在2013 Android IO大会上推出的新网络通信框架,

一个使得android 网络通信更加容易并且迅速的HTTP库。它并且可以通过开放的AOSP仓库进行使用。

它有以下特性:

1)自动调度网络请求;

2)支持多并发的网络连接;

3)磁盘和内存响应缓存使用标准HTTP缓存特性;

4)支持请求优先级;

5)取消请求API。你可以取消一个请求,或者你可以设定块或取消的请求范围;

6)易于定制,例如,重试和补偿;

7)强大的排序,便于正确填充UI的从网络获取而来的异步数据;

8)有调试和跟踪工具

 

它就是一个让你更快捷更高效进行网络通信的android 网络工具库,它适用于小数据的交换。对于大文件或者流媒体,它是不适合的。而对于大文件的下载操作,请考虑用其他的库,比如DownloadManager。

 

Volley is notsuitable for large download or streaming operations, since Volley holds allresponses in memory during parsing. For large download operations, considerusing an alternative like DownloadManager.

 

如果你安装有git,那么可以通过下面命令来获得 Volley的源码:

git clone https://android.googlesource.com/platform/frameworks/volley

 

二、如何使用Volley?

1、使用Volley发送一个简单的请求:

Volley提供了一个方法来根据一个URL发起一个HTTP请求。只需要做以下5个步骤:

 

1)下载volley.jar包,并加入到android 工程的libs中;

2)配置上网的权限;

 <uses-permission android:name="android.permission.INTERNET" >


3)通过Volley的静态方法新建一个请求队列对象RequestQueue,这里解释下什么是RequestQueue,从它的源码可以大概了解到它是拥有好几个queue成员变量的对象,其中包括缓存队列和网络队列,都是采用优先级阻塞队列。因此,我们可以理解它为一个用来处理我们所提出所有网络请求的队列。

 

RequestQueue queue = Volley.newRequestQueue(this);

4)提供一个URLnew一个StringRequest 对象;所谓StringRequest对象,在它源码注释可知,它就一个是利用给定的URL作为一个String去检索响应内容的封装请求对象。

5)并把它加入到RequestQueue队列中。

queue.add(stringRequest);

 

官方所给出的提示DEMO如下:

final TextView mTextView = (TextView) findViewById(R.id.text);

...

 

// Instantiate the RequestQueue.

RequestQueue queue = Volley.newRequestQueue(this);

String url ="http://www.google.com";

 

// Request a string response from the provided URL.

StringRequest stringRequest = new StringRequest(Request.Method.GET, url,

            new Response.Listener() {

    @Override

    public void onResponse(String response) {

        // Display the first 500 characters of the response string.

        mTextView.setText("Response is: "+ response.substring(0,500));

    }

}, new Response.ErrorListener() {

    @Override

    public void onErrorResponse(VolleyError error) {

        mTextView.setText("That didn‘t work!");

    }

});

// Add the request to the RequestQueue.

queue.add(stringRequest);

 

来自 <http://developer.android.com/training/volley/simple.html>

 

 

2、使用JSON传递数据:JsonRequest

(未完待续)

弄明白android 网络库之Volley

标签:google   网络   通信   源码   

原文地址:http://blog.csdn.net/linfeng24/article/details/42065313

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!