zoukankan      html  css  js  c++  java
  • Android Volley 框架的使用(一)

    为什么要使用Volley框架

    开发android应用很多时候都要涉及网络操作,Android SDK中提供了HttpClient 和 HttpUrlConnection两种方式用来处理网络操作,但当应用比较复杂的时候需要我们编写大量的代码处理很多东西:图像缓存,请求的调度等等;

    而Volley框架就是为解决这些而生的,它与2013年Google I/O大会上被提出:使得Android应用网络操作更方便更快捷;抽象了底层Http Client等实现的细节,让开发者更专注与产生RESTful Request。另外,Volley在不同的线程上异步执行所有请求而避免了阻塞主线程。

    这里写图片描述

    Volley到底有哪些特点呢?

    1. 自动调度网络请求
    2. 多个并发的网络连接
    3. 通过使用标准的HTTP缓存机制保持磁盘和内存响应的一致
    4. 支持请求优先级
    5. 支持取消请求的强大API,可以取消单个请求或多个
    6. 易于定制
    7. 健壮性:便于正确的更新UI和获取数据
    8. 包含调试和追踪工具

    如何使用Volley

    git clone https://android.googlesource.com/platform/frameworks/volley 或者 https://github.com/mcxiaoke/android-volley 

    或者到Maven下载http://central.maven.org/maven2/com/mcxiaoke/volley/library/1.0.19/library-1.0.19.jar

     

    Volley中的RequestQueue 和 Request

    • RequestQueue 用来执行请求的请求队列
    • Request 用来构造一个请求对象
    • Request对象主要有以下几种类型: 
      1. StringRequest 响应的主体为字符串
      2. JsonArrayRequest 发送和接收JSON数组
      3. JsonObjectRequest 发送和接收JSON对象
      4. ImageRequest 发送和接收Image

    Volley的基本使用

    首先我们需要创建一个RequestQueue requestQueue,然后构建一个自己所需要的XXRequest req,之后通过requestQueue.add(req);将请求添加至请求队列;

    构建一个RequestQueue

    RequestQueue requestQueue=Volley.newRequestQueue(this);//这里的this指的是Context

    创建一个Request(以JsonObjectRequest为例)

    private final String url="http:/xxxxx"//所需url
        JsonObjectRequest req=new JsonObjectRequest(url,null,new Response.Listener<JsonObject>(){
            @Override
            public void onResponse(JsonObject response){
                //添加自己的响应逻辑,
            }
        },
        new ResponseError.Listener(){
            @Override
            public void onResponseError(VollerError error){
                //错误处理
                L.d("Error Message:","Error is"+error);
            }
        });

    将req添加到requestQueue

    在构建JsonObjectRequest对象时,需要四个参数,其中第二个参数代表http方法,第三个和第四个分别是响应监听和响应错误监听,分别需要覆写onResponse()onResponseError()方法;RequestQueue将会执行请求,并将响应回调onResponse()方法,所以需要在onResponse()方法中实现自己的业务逻辑

    参考资料 :http://blog.csdn.net/qwm8777411/article/details/45770979

    http://www.kwstu.com/ArticleView/kwstu_20144118313429

  • 相关阅读:
    Advanced Sort Algorithms
    Bash Excercises
    分布式Java应用与实践 (一)
    Configure HttpClient correctly
    Automated Front End Test
    linux 判断一个用户是否存在 _fei
    linux 系统扩容 VMware Centos---VMware ESXi
    ESX 基本使用 _fei
    centos jira wiki 开机自启
    svn 添加子目录后检出失败 _fei
  • 原文地址:https://www.cnblogs.com/zyw-205520/p/4950357.html
Copyright © 2011-2022 走看看