Volley框架:2013年Google I/O大会上,Volley发布了。Volley是Google官方布的用于Android 平台上的网络通信库,目的是使网络通信更快,更简单,更健壮。 gitthub开源地址:https://github.com/stormzhang/AndroidVolley

* 特点:
* 网络通信更快,更简单,更健壮
* Get,POST等常用网络请求及图像高效异步处理
* 可以对多个网络请求进行优先级排序,可以多级别取消请求操作
* 网络请求的缓存处理
* 可以和Activity生命周期互动
* 缺点:不适合大数据和流媒体数据传输的网络请求,如视屏下载,大文件下载等。
* 使用步骤:
* 1,建立请求队列
* 2,将请求添加到队列中
* 3,用GET或POST(传递参数)发送请求
* 4,在请求结果的回调中进行相应的逻辑处理
* ———————————–
* Volley请求提供了三种类型请求:
* StringRequest 返回数据类型:String,本文的例子就是以这个为例
* JsonObjectRequest 返回数据类型:JsonObject
* JsonArrayRequest 返回数据类型:JsonArray

/** * 定义全局的Application,在这里对Volley及android-async-http框架进行配置 * @description: * @date 2016-1-11 上午9:59:17 */public class GlobalApplication extends Application {    /*Volley网络请求队列**/    public static RequestQueue mQueue;    @Override    public void onCreate() {        // TODO Auto-generated method stub        super.onCreate();        mQueue=Volley.newRequestQueue(this);//初始化请求队列    }    /*对外获取队列对象的方法**/    public static RequestQueue getVolleyQueue(){        return mQueue;    }}

Activity中使用Volley的get与post进行网络请求:

public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //使用Volley的get请求        getByVolley();        //使用Volley的POST请求        postByVolley();    }    private void postByVolley() {        String url="http://apis.juhe.cn/mobile/get?";//用Post要把get请求后面的字段用参数的方式过去        StringRequest request=new StringRequest(Method.POST,url, new Listener<String>() {            @Override            public void onResponse(String response) {//请求成功返回的数据                Log.v("ldm", response);            }        }, new Response.ErrorListener() {            @Override            public void onErrorResponse(VolleyError error) {//请求失败的处理                Toast.makeText(MainActivity.this, "请求失败", Toast.LENGTH_SHORT).show();            }        }){            @SuppressWarnings("unchecked")            @Override            protected Map<String, String> getParams() throws AuthFailureError {//传递参数的方法                Map<String, String> param=new HashMap<>();                param.put("phone", "13429667914");                param.put("key", "xxxxxxxx");                return param;            }        };        request.setTag("post");        GlobalApplication.getVolleyQueue().add(request);//把请求添加到队列中    }    private void getByVolley() {       //网络请求的连接地址,xxxxxxxx指你在聚合api网站申请的对应的key值         String url="http://apis.juhe.cn/mobile/get?phone=13429667914&key=xxxxxxxx";        StringRequest request=new StringRequest(Method.GET,url, new Listener<String>() {            @Override            public void onResponse(String response) {//请求成功返回的数据                Log.v("ldm", response);            }        }, new Response.ErrorListener() {            @Override            public void onErrorResponse(VolleyError error) {//请求失败的处理                Toast.makeText(MainActivity.this, "请求失败", Toast.LENGTH_SHORT).show();            }        });        request.setTag("get");        GlobalApplication.getVolleyQueue().add(request);//把请求添加到队列中    }    //在Activity的生命周期Onstop中取消tag为“get”对应请求    @Override    protected void onStop() {        // TODO Auto-generated method stub        super.onStop();        GlobalApplication.getVolleyQueue().cancelAll("get");    }}

最后不要忘记在AndroidManifest.xml中配置网络权限 :

更多相关文章

  1. 使用x5cloud云平台来做网络彩讯-------------需要的权限(四)
  2. Android开发历程_12(Handler的使用)
  3. Android高效处理权限——EasyPermissions框架的使用
  4. Android之Handler与多线程
  5. 2020年中高级Android大厂面试秘籍,为你保驾护航,直通大厂
  6. AsyncHttpClient
  7. Android中ImageView使用网络图片资源的方法
  8. 如何刷新Android的ListView的UI界面
  9. Android(安卓)Volley 网络请求框架图

随机推荐

  1. python学习笔记(3)--爬虫基础教程1
  2. 在NumPy中更改数组边缘的值
  3. 学习用pyhon写hive udf
  4. 创建单独的函数而不是一个大的缓慢处理时
  5. python打印系统所有tcp,udp监听端口及服
  6. python学习(13)————jieba进阶生成词云
  7. 用于搜索和替换大字符串的最快Python方法
  8. 基于scrapy框架的关于58同城招聘网站信息
  9. PyQt中的各种提示框
  10. Python3:抓取百度关键词所包含的网页