Android xutil3网络模块二次封装
来源:互联网 发布:零售药店收银软件 编辑:程序博客网 时间:2024/05/01 17:57
在Android开发过程中,难免有网络请求,通常的在子线程中请求网络,在主线程中更新UI,这样的话比较麻烦,国内大神写了好多框架,其中最常见的就是xutil了,在开发过程中,需要实现它的网络请求部分的回调函数的好几个方法,这样显得代码有点乱,于是乎,我就想对他进行封装了。其实我是按照开发网站的思想进行封装的,做个网站的都知道,MVC思想很重要,特别是在ssh或ssm框架中较为明显,所以我就按照这个思路进行封装了,下面来看看代码吧
BaseDao.java
package com.example.dao.base;import java.util.Map;import org.xutils.x;import org.xutils.common.Callback.Cancelable;import org.xutils.common.Callback.CommonCallback;import org.xutils.http.RequestParams;import android.app.Application;import android.content.Context;/** * 二次封装xutil3 * @author double江 * */public class BaseDao{ private Context context; public void BasDao(Context context){ this.context=context; x.Ext.init((Application) context); } /** * 发送get请求 * @param <T> */ public <T> Cancelable Get(String url,Map<String,String> map,CommonCallback<T> callback){ RequestParams params=new RequestParams(url); if(null!=map){ for(Map.Entry<String, String> entry : map.entrySet()){ params.addQueryStringParameter(entry.getKey(), entry.getValue()); } } Cancelable cancelable = x.http().get(params, callback); return cancelable; } /** * 发送post请求 * @param <T> */ public <T> Cancelable Post(String url,Map<String,Object> map,CommonCallback<T> callback){ RequestParams params=new RequestParams(url); if(null!=map){ for(Map.Entry<String, Object> entry : map.entrySet()){ params.addParameter(entry.getKey(), entry.getValue()); } } Cancelable cancelable = x.http().get(params, callback); return cancelable; } /** * 上传文件 * @param <T> */ public <T> Cancelable UpLoadFile(String url,Map<String,Object> map,CommonCallback<T> callback){ RequestParams params=new RequestParams(url); if(null!=map){ for(Map.Entry<String, Object> entry : map.entrySet()){ params.addParameter(entry.getKey(), entry.getValue()); } } params.setMultipart(true); Cancelable cancelable = x.http().get(params, callback); return cancelable; } /** * 下载文件 * @param <T> */ public <T> Cancelable DownLoadFile(String url,String filepath,CommonCallback<T> callback){ RequestParams params=new RequestParams(url); //设置断点续传 params.setAutoResume(true); params.setSaveFilePath(filepath); Cancelable cancelable = x.http().get(params, callback); return cancelable; }}
在activity中
测试一个方法
“`
private void getxml() {
String url=”http://flash.weather.com.cn/wmaps/xml/china.xml”;
BasDao.Get(url, null, new CallbackDao<String>(){ @Override public void onSuccess(String xmlString) { super.onSuccess(xmlString); try{ XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser xmlPullParser = factory.newPullParser(); xmlPullParser.setInput(new StringReader(xmlString)); int eventType = xmlPullParser.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { switch (eventType) { case XmlPullParser.START_TAG: String nodeName = xmlPullParser.getName(); if ("city".equals(nodeName)) { String pName = xmlPullParser.getAttributeValue(0); Log.e("TAG", "city is " + pName); } break; } eventType = xmlPullParser.next(); } }catch(Exception e){ e.printStackTrace(); } } }); }
“`
3 0
- Android xutil3网络模块二次封装
- Android二次封装的网络框架 AndNet
- Android网络框架AsyncHttpClient的二次封装
- android网络框架asyncHttpClient 的二次封装
- Android网络请求框架AsyncHttp二次封装
- Android 二次封装网络加载框架
- Android 网络通信框架Volley的二次封装
- 【Android应用】AS Volley网络访问 简单的二次封装
- Android Volley二次封装
- 【Android Meditation】二次封装
- 微信小程序网络二次封装
- okHttp网络请求二次封装
- Android OkHttp3的二次封装
- android基于开源网络框架asychhttpclient,二次封装为通用网络请求组件
- 使用Xutil3加载网络图片
- Volley二次封装,实现网络请求缓存
- Xutils3网络框架的二次封装
- 二次封装OKHttp网络框架(1)
- Struts2.3+Spring3.2.8+Hibernate4.1全注解配置
- 博客开通鸟~
- 每日一linux命令(11)-------nl
- 跨域、跨文档传输数据(三)---- postMessage ; 实现跨文档消息传输;
- 图解用Fiddler做http协议分析入门
- Android xutil3网络模块二次封装
- 使用axis1+spring+hibernate搭建webservice框架(一)
- mongodb常用命令
- Hadoop入门之Hadoop中的HelloWorld程序
- Xcode清除缓存、清理多余证书
- Block (二) 块方法的应用症状枚举
- hdu 1269 迷宫城堡【强连通+Kosaraju】
- 利用.dSYM和.app文件准确定位Crash位置
- OnePlus One Root