zoukankan      html  css  js  c++  java
  • 技术文档volley 框架

    Volley 框架

    参考文档:http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f73e7e808c027fa2ce0ac4384c413037bee43a7c4b54ce81273044b2141ebdac3574310023b49cc3884bd6bb953f2fff7d722f4292044f934fa0981a73817dcb0cfeaf68a3e7ae6cc4e5c5d2af4323be44717a9780fa4d7665dd6e804773b8b19838022e67ad9c36728f5e605998&p=86759a45d5c75ae90be2963a564496&newp=ce6df95485cc43e504bd9b7e0e1298231610db2151d3c44324b9d71fd325001c1b69e7ba24201b00d2c0766107ac4d5ae1f131763c1766dada9fca458ae7c46273&user=baidu&fm=sc&query=android+Volley%BF%F2%BC%DCAPI%CE%C4%B5%B5&qid=ce8f5d4d0000260a&p1=2

    https://www.baidu.com/s?wd=volley%E6%A1%86%E6%9E%B6%E5%8E%9F%E7%90%86&rsv_spt=1&rsv_iqid=0xc68c23ec00017d79&issp=1&f=3&rsv_bp=0&rsv_idx=2&ie=utf-8&rqlang=&tn=64025008_adr&rsv_enter=1&inputT=21248

    http://www.2cto.com/kf/201504/388742.html

    推荐:http://blog.csdn.net/richie0006/article/details/47069635

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

      获取到一个RequestQueue对象,可以调用如下方法获取到:RequestQueue mQueue = Volley.newRequestQueue(context);  

      注意这里拿到的RequestQueue是一个请求队列对象,它可以缓存所有的HTTP请求,然后按照一定的算法并发地发出这些请求。

    基本上在每一个需要和网络交互的Activity中创建一个RequestQueue对象就足够了。

    接下来为了要发出一条HTTP请求,我们还需要创建一个StringRequest对象,如下所示:

    public void volleyGet(){

    StringRequest  request=new StringRequest(Method.GET, "url", new Listener<String>() {

    @Override

    public void onResponse(String arg0) {

    // TODO Auto-generated method stub

    }

    }, new Response.ErrorListener() {

    @Override

    public void onErrorResponse(VolleyError arg0) {

    // TODO Auto-generated method stub

    }

    });

    MyApplication.getHttpQueue().add(request);

    }

     

    public void volleyPost(String... param) {

    HashMap<String, String> hm = new HashMap<String, String>();

    hm.put("requestPurpose", "1");

    hm.put("username", param[0]);

    hm.put("userpassword", param[1]);

    NormalPostRequest request = new NormalPostRequest("url", new Response.Listener<JSONObject>() {

    @Override

    public void onResponse(JSONObject arg0) {

    // TODO Auto-generated method stub

    }

    }, new Response.ErrorListener() {

    @Override

    public void onErrorResponse(VolleyError arg0) {

    // TODO Auto-generated method stub

    }

    }, hm);

    MyApplication.getHttpQueue().add(request);

    }

    . JsonRequest的用法

    学完了最基本的StringRequest的用法,我们再来进阶学习一下JsonRequest的用法。类似于StringRequest,JsonRequest也是继承自Request类的,不过由于JsonRequest是一个抽象类,因此我们无法直接创建它的实例,那么只能从它的子类入手了。JsonRequest有两个直接的子类,JsonObjectRequest和JsonArrayRequest,从名字上你应该能就看出它们的区别了吧?一个是用于请求一段JSON数据的,一个是用于请求一段JSON数组的。

    至于它们的用法也基本上没有什么特殊之处,先new出一个JsonObjectRequest对象,如下所示:

    1. JsonObjectRequest jsonObjectRequest = new JsonObjectRequest("http://m.weather.com.cn/data/101010100.html", null,  
    2. new Response.Listener<JSONObject>() {  
    3. @Override  
    4. public void onResponse(JSONObject response) {  
    5. Log.d("TAG", response.toString());  
    6. }  
    7. }, new Response.ErrorListener() {  
    8. @Override  
    9. public void onErrorResponse(VolleyError error) {  
    10. Log.e("TAG", error.getMessage(), error);  
    11. }  
    12. });  

     

     

     

  • 相关阅读:
    Task 和 Function
    FPGA中双向端口的设计原理及仿真
    EDK实用实例之LED
    分频电路设计(笔记)
    你了解Promise么
    配置vue多页
    Chrome控制台console的那些属性
    关于读书
    django常用命令
    django 简易博客开发 2 模板和数据查询
  • 原文地址:https://www.cnblogs.com/zhangshibo/p/5755753.html
Copyright © 2011-2022 走看看