Android Volley网络框架的基本使用

本文详细介绍了Android的Volley网络框架,包括其特点、初始化、GET/POST请求的使用、参数传递、请求队列的管理、异常处理、优先级设置以及图片加载。Volley以其高效、稳定的特点,适用于频繁的网络请求,同时提供了简单的封装示例,便于开发者自定义和使用。
摘要由CSDN通过智能技术生成

转载请标明出处:
http://blog.csdn.net/tyzlmjj/article/details/48973777
本文出自:【M家杰的博客】

[Android-Volley-GitHub]

Volley特点

  • 高效的Get/Post方式的数据请求交互
  • 对于频繁进行多次请求的处理比较好
  • 性能较为稳定

所需权限

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

Volley框架的初始化

全局使用同一个类,可控性较高,也比较方便。
最好在Application中初始化(如下代码)

private static RequestQueue requestQueues;

@Override
public void onCreate() {
    super.onCreate();
    requestQueues = Volley.newRequestQueue(getApplicationContext());
}

public static RequestQueue getQueues() {
    return requestQueues;
}

GET/POST请求的使用

请求类

  1. StringRequest
    StringRequest(请求模式,url地址, 请求成功的监听,请求出错的监听);
    最为常用的方法`,相对另外两种方法通用性比较高。

  2. JsonArrayRequest
    确定返回数据为JsonArray时使用可以提高一定的效率。

  3. JsonObjectRequest
    确定返回数据为JsonObject时使用可以提高一定的效率。

回调类

  • Response.ErrorListener()
    接收所有请求错误的返回,返回只有英文!

  • Response.Listener<T>
    接收所有请求成功的返回,返回值一般按方法来定,返回String、JsonObject、JsonArray等。

网络请求队列的建立

GET
String url = "http://news-at.zhihu.com/api/4/news/latest";
StringRequest request = new StringRequest(Method.GET, url, 
        new Listener<String>() {
            @Override
            public void onResponse(String arg0) {
                //数据请求成功
                Log.i("volley","GET返回:"+arg0);
            }
        }, new Response.ErrorListener(){
            @Override
            public void onErrorResponse(VolleyError arg0) {
                //数据请求失败
                Log.i("volley",arg0.toString());
            }
        });
//加入TAG标签
request.setTag("main_get");
//添加到队列中
MyApplication.getQueues().add(request);
POST
String url = "";
StringRequest request = new StringRequest(Method.POST, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String arg0) {
                //数据请求成功
                Log.i("volley", "POST返回:"+arg0);
            }
        },new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError arg0) {
                //数据请求失败
                Log.i("volley", arg0.toString());
            }
        }){
            //Post在这个方法中写入要传递的参数
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String,String> params = new HashMap<String,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值