Volley--慕课网学习

Volley是谷歌发布的提供的网络通讯库。

一、Volley提供:

1、GET,POST网络请求和网络图像的高效的异步处理请求

2、网络请求优先级的排序

3、网络请求的缓存

4、多级别取消请求

5、和Activity生命周期的联动


优点:高效的GET/POST数据请求交互,网络图片的加载和缓存。

           谷歌官方推出,性能稳定高效

缺点:不适合文件的上传与下载


二、GET/POST请求接口数据的使用:

       1、当对于返回的解析数据类型不确定时:

           StringRequest

         2、返回的解析数据类型确定是以下两种之一:

           JsonObjectRequest

           JsonArrayRequest


三、其他:

     1、建立一个全局的请求队列,整个应用的请求都通过这个队列管理。

      2、Volley与Activity生命周期的联动,可以在Activity销毁时同时关闭请求。通过设置Tag标签,以此寻找请求,最后在onStop()里进行销毁。

    

String/GET

private void volleyGet() {
		StringRequest request=new StringRequest(Method.GET, url, new Listener<String>() {
           
			@Override
			public void onResponse(String response) {
				// 数据请求成功返回
				Log.e("tony", "volleyGet");
				Log.e("tony", response);
			}
		}, new Response.ErrorListener() {

			@Override
			public void onErrorResponse(VolleyError error) {
				// 数据请求失败返回
				Log.e("tony", error.toString());
			}
		});
		//为这个请求设置Tag
		request.setTag("Get001");		
		//将请求添加入全局队列
		MyApplication.getHttpQueues().add(request);
	}
String/POST

public void VolleyPost(){
		StringRequest request=new StringRequest(Method.POST, postUrl, new Listener<String>() {
	           
			@Override
			public void onResponse(String response) {
				// 数据请求成功返回
				Log.e("tony", "VolleyPost");
				Log.e("tony", response);
			}
		}, new Response.ErrorListener() {

			@Override
			public void onErrorResponse(VolleyError error) {
				// 数据请求失败返回
				Log.e("tony", error.toString());
			}
		}){
			@Override
			protected Map<String, String> getParams() throws AuthFailureError {
				Map<String, String> hashMap=new HashMap<String, String>();
				hashMap.put("ip", "202.96.128.146");
				return hashMap;
			}
		};
		//为这个请求设置Tag
		request.setTag("Post001");		
		//将请求添加入全局队列
		MyApplication.getHttpQueues().add(request);
	}

JSONObject/GET

public void JsonObjectGet(){
		JsonObjectRequest request=new JsonObjectRequest(Method.GET, url, null, new Listener<JSONObject>() {

			@Override
			public void onResponse(JSONObject response) {
				// TODO Auto-generated method stub
				Log.e("tony", "JsonObject");
				Log.e("tony", response.toString());
			}
		}, new ErrorListener() {

			@Override
			public void onErrorResponse(VolleyError error) {
				// TODO Auto-generated method stub
				Log.e("tony", error.toString());
			}
		});
		//为这个请求设置Tag
		request.setTag("GetJSOB001");		
		//将请求添加入全局队列
		MyApplication.getHttpQueues().add(request);
	}

JSONObject/POST

public void JsonObjectPost(){
		String JBurl = "http://apis.juhe.cn/mobile/get?";
		HashMap<String, String> hashMap=new HashMap<String,String>();
		hashMap.put("phone", "13429667914");
        hashMap.put("key", "335adcc4e891ba4e4be6d7534fd54c5d");
		JSONObject jsonParams =new JSONObject(hashMap);
		JsonObjectRequest request=new JsonObjectRequest(Method.POST, JBurl, jsonParams , new Listener<JSONObject>() {

			@Override
			public void onResponse(JSONObject response) {
				// TODO Auto-generated method stub
				Log.e("tony", "JsonObjectPOST");
				Log.e("tonyres", response.toString());
			}
		}, new ErrorListener() {

			@Override
			public void onErrorResponse(VolleyError error) {
				// TODO Auto-generated method stub
				Log.e("tonyerr", error.toString());
			}
		});
		//为这个请求设置Tag
		request.setTag("PostJSOB001");		
		//将请求添加入全局队列
		MyApplication.getHttpQueues().add(request);
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值