美文网首页Android爱好者
Volley用法全解析

Volley用法全解析

作者: qiaoStr | 来源:发表于2016-08-25 10:45 被阅读40次

转载刘望舒的博客Android网络编程(三)Volley用法全解析

前言

Volley想必很多人都用过,为了建立网络编程的知识体系,Volley是必须要讲的知识点,所以我这里有必要再次介绍一下Volley的使用。

1.Volley简介
在2013年Google I/O大会上推出了一个新的网络通信框架Volley。Volley既可以访问网络取得数据,也可以加载图片,并且在性能方面也进行了大幅度的调整,它的设计目标就是非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如说下载文件等,Volley的表现就会非常糟糕。在使用Volley前请下载Volley库并放在libs目录下并add到工程中。 下载Volley请点击这

2.Volley网络请求队列
Volley请求网络都是基于请求队列的,开发者只要把请求放在请求队列中就可以了,请求队列会依次进行请求,一般情况下,一个应用程序如果网络请求没有特别频繁则完全可以只有一个请求队列(对应Application),如果非常多或其他情况,则可以是一个Activity对应一个网络请求队列,这就要看具体情况了,首先创建队列:

RequestQueue mQueue = Volley.newRequestQueue(getApplicationContext());

3.StringRequest的用法
StringRequest返回的数据是String类型的,我们查看下StringRequest的源码:

public class StringRequest extends Request<String> { 
private final Listener<String> mListener; 
public StringRequest(int method, String url, Listener<String> listener, ErrorListener errorListener) { 
  super(method, url, errorListener);
   this.mListener = listener;
 } 
public StringRequest(String url, Listener<String> listener, ErrorListener errorListener) {
   this(0, url, listener, errorListener);
 }
...省略}

有两个构造函数,其中第一个比第二个多了一个请求的方法,如果采用第二个则默认是GET请求。好了,我们试着用GET方法来请求百度:

 //创建请求队列
 RequestQueue mQueue = Volley.newRequestQueue(getApplicationContext()); 
StringRequest mStringRequest = new StringRequest(Request.Method.GET, "http://www.baidu.com", new Response.Listener<String>() {
    @Override 
   public void onResponse(String response) { 
  Log.i("wangshu", response); 
  } 
   }, new Response.ErrorListener() { 
      @Override
      public void onErrorResponse(VolleyError error) { 
      Log.e("wangshu", error.getMessage(), error); 
    } 
}); 
//将请求添加在请求队列中 
mQueue.add(mStringRequest);

当然别忘了添加网络访问权限:

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

4.JsonRequest的用法
和StringRequest类似,我们直接上代码:

 RequestQueue mQueue = Volley.newRequestQueue(getApplicationContext()); 
JsonObjectRequest mJsonObjectRequest = new JsonObjectRequest(Request.Method.POST,"http://api.1-blog.com/biz/bizserver/article/list.do", new Response.Listener<JSONObject>() { 
@Override public void onResponse(JSONObject response) { 
Log.d("wangshu", response.toString()); 
}
 }, new Response.ErrorListener() { 
@Override public void onErrorResponse(VolleyError error) { 
Log.e("wangshu", error.getMessage(), error);
 } 
} ); 
mQueue.add(mJsonObjectRequest);

相关文章

  • Volley用法全解析

    转载刘望舒的博客Android网络编程(三)Volley用法全解析 前言 Volley想必很多人都用过,为了建立网...

  • Volley学习

    Volley学习 参考文章 Android Volley完全解析(一),初识Volley的基本用法Android ...

  • Volley解析

    参考郭霖大神的博客 : Android Volley完全解析(一),初识Volley的基本用法 Android V...

  • 【源码解析】 Volly

    【源码解析】 Volley的用法及源码解析 前言 Volley是谷歌在2013年I/O大会上推出的新的网络请求框架...

  • 网络编程(三)

    Volley用法完全解析 从上图可以看到Volley分为三个线程,分别是主线程、缓存调度线程、和网络调度线程,首先...

  • Android网络编程(三)Volley用法全解析

    前言 Volley想必很多人都用过,为了建立网络编程的知识体系,Volley是必须要讲的知识点,所以我这里有必要再...

  • Volley

    Android Volley完全解析(四),带你从源码的角度理解Volley

  • 每日一题:Volley源码问题分析

    每日一题:Volley源码问题分析 学习推荐_Volley源码解析 面试率: ★★★☆☆ 面试提醒 Volley是...

  • Volley基本用法

    Volley基本用法 什么是volley Volley,是谷歌官方于2013年发布的用于Android平台的网络通...

  • 详解Android Handler 机制 (一)用法全解

    详解Android Handler 机制 (一)用法全解 详解Android Handler 机制 (二)源码解析...

网友评论

    本文标题:Volley用法全解析

    本文链接:https://www.haomeiwen.com/subject/huaosttx.html