作者:Bgwan
链接:https://zhuanlan.zhihu.com/p/22573081
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

an框架的网络框架是完全基于Xutils3.0以上的,这里需要感谢前辈/wyouflf/xUtils3的无私奉献。

Begin

使用方法:

compile 'com.github.qydq:an-maven-base:0.0.9'

DXUtils,XProgressCallBack和XCallBack是an框架提供的辅助类。

1.得到以Xml的形式返回的数据

private void getxml() {
String url = "http://flash.weather.com.cn/wmaps/xml/china.xml";
DXUtils.Get(url, null, new XCallBack<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);
showToast("city is:" + pName + "weather is");
}
break;
}
eventType = xmlPullParser.next();
}
} catch (Exception e) {
e.printStackTrace();
}
} @Override
public void onError(Throwable ex, boolean isOnCallback) {
super.onError(ex, isOnCallback);
} });
}

2.下载带进度的文件

private void downloadprogressfile() {
//文件下载地址
String url = "";
//文件保存在本地的路径
String filepath = "";
DXUtils.DownLoadFile(url, filepath, new XProgressCallBack<File>() { @Override
public void onSuccess(File result) {
super.onSuccess(result);
showToast("result:" + result.toString());
} @Override
public void onError(Throwable ex, boolean isOnCallback) {
super.onError(ex, isOnCallback); } });
}

3.下载普通类型的文件

private void downloadfile() {
//文件下载地址
String url = "";
//文件保存在本地的路径
String filepath = "";
DXUtils.DownLoadFile(url, filepath, new XCallBack<File>() {
@Override
public void onSuccess(File result) {
super.onSuccess(result);
showToast("result:" + result.toString()); } @Override
public void onError(Throwable ex, boolean isOnCallback) {
super.onError(ex, isOnCallback); } });
}

4.上传文件

/**
* 上传文件(支持多文件上传)
*/
private void uploadfile() {
//图片上传地址
String url = "";
Map<String, Object> map = new HashMap<>();
//传入自己的相应参数
//map.put(key, value);
//map.put(key, value);
DXUtils.UpLoadFile(url, map, new XCallBack<String>() { @Override
public void onSuccess(String result) {
super.onSuccess(result);
showToast("result:" + result);
} @Override
public void onError(Throwable ex, boolean isOnCallback) {
super.onError(ex, isOnCallback);
} }); }

5.an框架提供的Get请求

private void get() {
String url = "http://api.k780.com:88/?app=idcard.get";
Map<String, String> map = new HashMap<>();
map.put("appkey", "10003");
map.put("sign", "b59bc3ef6191eb9f747dd4e83c99f2a4");
map.put("format", "json");
map.put("idcard", "110101199001011114");
DXUtils.Get(url, map, new XCallBack<PersonInfoBean>() { @Override
public void onSuccess(PersonInfoBean result) {
super.onSuccess(result);
Log.e("result", result.toString());
showToast("result:" + result.getResult());
} @Override
public void onError(Throwable ex, boolean isOnCallback) {
super.onError(ex, isOnCallback); } });
}

6.an框架提供的Post请求

private void post() {
String url = "http://api.k780.com:88/?app=idcard.get";
Map<String, Object> map = new HashMap<>();
map.put("appkey", "10003");
map.put("sign", "b59bc3ef6191eb9f747dd4e83c99f2a4");
map.put("format", "json");
map.put("idcard", "110101199001011114");
DXUtils.Post(url, map, new XCallBack<PersonInfoBean>() { @Override
public void onSuccess(PersonInfoBean result) {
super.onSuccess(result);
Log.e("result", result.toString());
showToast("result,信息:" + result.getMsgid());
} @Override
public void onError(Throwable ex, boolean isOnCallback) {
super.onError(ex, isOnCallback); }
});
} End

Android 利用an框架快速实现网络请求(含下载上传文件)的更多相关文章

  1. AFNetworking网络请求与图片上传工具(POST)

    AFNetworking网络请求与图片上传工具(POST) .h文件 #import <Foundation/Foundation.h> /** 成功Block */ typedef vo ...

  2. Android必知必会-使用okhttp的PUT方式上传文件

    注:如果移动端排版有问题,请看 简书版 (<-点击左边),希望CSDN能更好的支持移动端. 背景 公司的文件上传接口使用PUT协议,之前一直用的都是老项目中的上传类,现在项目中使用了okhttp ...

  3. Django框架 之 Form表单和Ajax上传文件

    Django框架 之 Form表单和Ajax上传文件 浏览目录 Form表单上传文件 Ajax上传文件 伪造Ajax上传文件 Form表单上传文件 html 1 2 3 4 5 6 7 <h3& ...

  4. WP8.1 Study17:网络之后台下载/上传及HttpClient

    一.后台下载/上传 1.简介 使用BackgroundTransferGroup可以十分方便操作上传及下载文件,BackgroundDownloader和BackgroundUploader类中的方法 ...

  5. express搭建web服务器、路由、get、post请求、multer上传文件、EJS模板引擎的使用

    express官网 postman工具下载地址  multer的npm文档地址 express模板引擎怎么使用  地址:http://www.expressjs.com.cn/guide/using- ...

  6. .net 模拟发起HTTP请求(用于上传文件)

    用C#在服务端发起http请求,附上代码一 /// <summary> /// 文件帮助类 /// </summary> public class FileHelper { / ...

  7. httpclient请求接口,上传文件附加参数(.net core)

    /// <summary> /// 上传文件 - 武汉站点 /// </summary> [HttpPost] public IActionResult UploadWH(Re ...

  8. Android 利用an框架快速实现夜间模式的两种套路

    作者:Bgwan链接:https://zhuanlan.zhihu.com/p/22520818来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 网上看到过大多实现夜间模 ...

  9. H5 FormData对象的使用——进行Ajax请求并上传文件

    XMLHttpRequest Level2 添加了一个新的接口——FormData .[ 主要用于发送表单数据,但也可以独立使用于传输键控数据.与普通的Ajax相比,它能异步上传二进制文件 ] 利用F ...

随机推荐

  1. Strtus2学习

    Struts 2 体系结构 : 1.Web浏览器请求一个资源. 2.过滤器Dispatcher查找方法,确定适当的Action. 3.拦截器自动对请求应用通用功能,如验证和文件上传操作. 4.Acti ...

  2. HDU 6153 A Secret

    A Secret Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 256000/256000 K (Java/Others)Total ...

  3. 【DRF频率】

    目录 使用自带的频率限制类 使用自定义的频率限制类 开发平台的API接口调用需要限制其频率,以节约服务器资源和避免恶意的频繁调用. DRF就为我们提供了一些频率限制的方法. DRF中的版本.认证.权限 ...

  4. Maven学习详解(13)——Maven常用命令大全与pom文件讲解

    一.Maven常用命令 1.1.Maven 参数 -D 传入属性参数  -P 使用pom中指定的配置  -e 显示maven运行出错的信息  -o 离线执行命令,即不去远程仓库更新包  -X 显示ma ...

  5. 数字签名算法--3.ECDSA

    package Imooc; import java.security.KeyFactory; import java.security.KeyPair; import java.security.K ...

  6. HDU 2102 A计划 (三维的迷宫BFS)

    题目链接:pid=2102">传送门 题意: 三维的一个迷宫,起点在第一层的S(0,0,0)处,问是否能在规定的时间内走到第二层的P 处.'*'代表不能走,'.'代表能够走,'#'代表 ...

  7. oralce的系统用户system的输入口令怎么找回?遇见ORA-28000: the account is locked怎么解锁?

    好几个月前安装的Oracle软件忽然想用就忘记了当初设置的口令了,今天查了下怎么找回. 以一个用户jqz/jqz(曾经建立的一个用户.幸亏还记得)的身份登录后: SQL> connect/as ...

  8. thinkphp验证码(总结之后,效率非常好)

    thinkphp验证码(总结之后,效率非常好) 一.总结 1.总结:总结之后,效率非常好,复习的时候也才方便,也能深入到细处,非常方便建立熟悉感和突破使用困境 2.验证码使用中文集或者繁体集设置:这个 ...

  9. $.post()提交了数据,return不给跳转

    本来Controller接到普通请求,return “somePage”,这样就跳转了.前台用$.post()提交了数据(不需要回调),我了个大草,return那里就不给跳转了这样怎么解决? ajax ...

  10. Mac 终端操作数据库

    名词解释: 事务:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节.事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这 ...