码迷,mamicode.com
首页 > 移动开发 > 详细

Android 网络框架Volley

时间:2015-02-16 06:46:56      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

Volley简介

在平时的开发过程中,我们的应用几乎总是在和网络打交道, 在android下的网络编程一般都是基于Http协议的 ,常见的是HttpURLConnection和HttpClient 两个类。因为用的比较多,很容易写一些重复的代码,于是就出现了一些比较好的网络框架,像AsyncHttpClient 、Xutils,Universal-Image-Loader(网络图片加载框架)等。

 

Volley是Google在2013年I/O大会上退出的一款新的网络框架,在数据两不大但通信频繁的网络操作中,用Volley非常适合。对于下载还是使用Xutils比较好。

Volley jar包下载

鉴于国内上外网的难度,可以上github上下载,https://github.com/mcxiaoke/android-volley一个和官方保持同步的非官方包

将jar包导入到lib目录下,准备工作就做完了、。

Volley使用

StringRequest

这个类可以用来从服务器获取String

StringRequest stringRequest = new StringRequest("http://www.baidu.com",  
                        new Response.Listener<String>() {  
                            @Override  
                            public void onResponse(String response) {  
                                Log.d("TAG", response);  
                            }  
                        }, new Response.ErrorListener() {  
                            @Override  
                            public void onErrorResponse(VolleyError error) {  
                                Log.e("TAG", error.getMessage(), error);  
                            }  
                        });
ApplicationController.getInstance().addToRequestQueue(stringRequest);

 

添加网络权限

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

这段代码,就是将百度首页的HTML代码给请求了过来。

RequestQueue初始化过程

public RequestQueue getRequestQueue() {  
    // lazy initialize the request queue, the queue instance will be  
    // created when it is accessed for the first time  
    if (mRequestQueue == null) {  
        mRequestQueue = Volley.newRequestQueue(getApplicationContext());  
    }  
  
    return mRequestQueue;  
}

 

在android2.3 之前使用HttpClient,2.3之后使用HttpURLConnection,在这里也有体现

newRequestQueue(Context context, HttpStack stack)中的部分源码:

if (Build.VERSION.SDK_INT >= 9) {  
            stack = new HurlStack();  
        } else {  
            // Prior to Gingerbread, HttpUrlConnection was unreliable.  
            // See: http://android-developers.blogspot.com/2011/09/androids-http-clients.html  
            stack = new HttpClientStack(AndroidHttpClient.newInstance(userAgent));  
        }

Android 网络框架Volley

标签:

原文地址:http://www.cnblogs.com/BoBoMEe/p/4293644.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!