• android 项目中使用到的网络请求框架以及怎样配置好接口URL


    我们在做项目中一定少不了网络请求,如今非常多公司的网络请求这块好多都是使用一些比較好的开源框架,我项目中使用的是volley,如今讲讲一些volley主要的使用,假设想要具体的了解就要去看它的源代码了,如今贴代码讲一些它的使用了,

    首先用一个类去封装下它的基本配置信息,以后须要变动的话,就直接在这里做改动,android最好能把每一个功能都独立出来,这样做改动的话 不会导致出现其它的bug,特别在有新员工进入到项目组中,分配任务沟通起来也省事,

    ProtocolManager.java  它是一个单例

    关键代码

    private ProtocolManager(Context context){
    		 initLoadBitmapConfig(context);
    		 mQueue = Volley.newRequestQueue(context);
    	}

    我们在调接口的时候 仅仅须要这样:

    Map<String,String> param = new HashMap<String, String>();
    		param.put("checksum", 0+"");
    		ProtocolManager.getInstance().request(ProtocolEnum.URL_CONSTANCE_CONF_REGIONS,param,new RequestListener() {
    			@Override
    			public void onRequestSucess(String response) {
    				
    				if(!TextUtils.isEmpty(response)){
    					AllProvinceInfo provinceInfo = JsonHelper.json2Bean(response,  AllProvinceInfo.class);
    					if(provinceInfo!=null&&provinceInfo.getRet()==1){
    						provinces = provinceInfo.getItems();
    						if(provinces!=null&&provinces.size()>0){
    							/**
    							 * 把请求的json数据缓存到sd卡中
    							 */
    							DataManager.getInstance(UIUtils.getContext()).saveCacheStr(CACHE_AREA, response);
    							mHandler.sendEmptyMessage(AREA_CODE_SUCCESS);
    						}else {
    							mHandler.sendEmptyMessage(AREA_CODE_EMPTY);
    						}
    					}
    				}
    			}
    			@Override
    			public void onRequestFiled(String errorMsg) {
    				mHandler.sendEmptyMessage(AREA_CODE_FAIAL);
    			}
    		});

    request中的方法
    public  void request(ProtocolEnum protocolEnum,final Map<String,String> params
    			,final RequestListener listener){
    		int type = protocolEnum.type;
    		String url = protocolEnum.value;
    		switch (type) {
    		case ConfigManager.REQ_POST:
    			requestPost(url, params,listener, false);
    			break;
    		case ConfigManager.REQ_GET:
    			requestGet(url, params,listener, false);
    			break;
    		}
    	}
    第一个參数是一个枚举,里面包括了这个url地址和请求方式

    ProtocolEnum.java

    public enum ProtocolEnum {
    	 URL_PROFILE_INTRODUCTION_GET("user/profile/introduction",ConfigManager.REQ_GET);//下拉个人简单介绍
    	 
    	 public String value;
    	 public int type;
    	private ProtocolEnum(String value, int type) {
    		this.value = value;
    		this.type = type;
    	}
    }
    这就是怎样非常好的管理请求的URL,最后在Volley请求它会有个成功或者失败的回调,把json数据,这样以后我们新增一个接口,仅仅要copy,改一下返回的model对象就可以,这样开发效率大大的提高了


  • 相关阅读:
    C++类继承内存布局(二)
    C++类继承内存布局(一)
    排序算法
    python 文件路径问题
    python map对象
    python reduce() 函数
    python eval 用法
    PyCharm引入自定义类报错
    Python中的lambda的简单介绍
    python time模块和datetime模块
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5173170.html
Copyright © 2020-2023  润新知