博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Volley传输网络数据
阅读量:5953 次
发布时间:2019-06-19

本文共 2203 字,大约阅读时间需要 7 分钟。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/49662561
         
   Volley  是一个HTTP库,它能够帮助Android apps更方便的执行网络操作,最重要的是,它更快速高效。可以通过开源的

AOSP 仓库获取到Volley 。

        Volley 有如下的优点:

            自动调度网络请求。高并发网络连接。通过标准的HTTP的cache coherence(高速缓存一致性)使得磁盘与内存缓存不可见(Transparent)。支持指定请求的优先级。
支持取消已经发出的请求。你可以取消单个请求,或者指定取消请求队列中的一个区域。
          框架容易被定制,例如,定制重试或者回退功能。
          强大的指令(Strong ordering)可以使得异步加载网络数据并显示到UI的操作更加简单。包含了Debugging与tracing工具。
         Volley擅长执行用来显示UI的RPC操作, 例如获取搜索结果的数据。它轻松的整合了任何协议,并输出操作结果的数据,可
以是raw strings,也可以是images,或者是JSON。通过提供内置你可能使用到得功能,Volley可以使得你免去重复编写样板
         代码,使你可以把关注点放在你的app的功能逻辑上。
         Volley不适合用来下载大的数据文件。因为Volley会在解析的过程中保留持有所有的响应数据在内存中。对于下载大量的数据操作,请考虑使用DownloadManager。
        Volley框架的核心代码是托管在AOSP仓库的 frameworks/volley  中,相关的工具放在 toolbox  下。把Volley添加到你的项目中的最简便的方法是Clone仓库然后把它设置为一个library project:
通过下面的命令来Clone仓库:git clone https://android.googlesource.com/platform/frameworks/volley

      1、发送简单的网络请求(Sending a Simple Request)

       使用Volley的方式是,你通过创建一个 RequestQueue  并传递 Request  对象给它。RequestQueue管理工作线程用来执行网络操

作,从Cache中读取与写入数据,以及解析Http的响应内容。 Requests  执行raw responses的解析,Volley会把响应的数据分发给主线程。

         (1) 为了使用Volley,你必须添加 android.permission.INTERNET  权限到你的manifest文件中。没有这个权限,你的app将无法访问网络。

          (2)Volley提供了一个简便的方法: Volley.newRequestQueue  用来为你建立一个 RequestQueue  ,使用默认值,并启动这个队列。例如:

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() {@Overridepublic void onResponse(String response) {// Display the first 500 characters of the response string.mTextView.setText("Response is: "+ response.substring(0,500));}}, new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError error) {mTextView.setText("That didn't work!");}});// Add the request to the RequestQueue.queue.add(stringRequest);
Volley总是把解析过后的数据返回到主线程中。在主线程中更加合适使用接收到到的数据用来操作UI控件,这样你可以在响
应的handler中轻松的修改UI,但是对于库提供的一些其他方法是有些特殊的,例如与取消有关的。
关于如何创建你自己的请求队列,不要使用Volley.newRequestQueue方法,请查看建立一个请求队列Setting Up a
RequestQueue。
为了发送一个请求,你只需要构造一个请求并通过 add()  方法添加到 RequestQueue  中。一旦你添加了这个请求,它会通过队
列,得到处理,然后得到原始的响应数据并返回。
你可能感兴趣的文章
Numpy中的random模块中的seed方法的作用
查看>>
关于jsb中js与c++的相互调用
查看>>
POJ-2251 Dungeon Master
查看>>
tortoisesvn的安装
查看>>
URAL 1353 Milliard Vasya's Function DP
查看>>
速读《构建之法:现代软件工程》提问
查看>>
Android onclicklistener中使用外部类变量时为什么需要final修饰【转】
查看>>
django中聚合aggregate和annotate GROUP BY的使用方法
查看>>
TFS简介
查看>>
docker管理平台 shipyard安装
查看>>
Bootstrap3 栅格系统-简介
查看>>
ADODB类库操作查询数据表
查看>>
博客搬家了
查看>>
Python中使用ElementTree解析xml
查看>>
sed处理文本
查看>>
jquery 操作iframe、frameset
查看>>
解决vim中不能使用小键盘
查看>>
jenkins权限管理,实现不同用户组显示对应视图views中不同的jobs
查看>>
我的友情链接
查看>>
CentOS定时同步系统时间
查看>>