作者: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. Linux下几种另类创建文件之方法

    以前我们用编辑器例如vi来新建文件,下面介绍几种另类生成文件的方法,多用在备份和测试上. 创建文件的方法: 1.echo 命令    #echo "set bell"  >& ...

  2. C/C++(数据结构栈的实现)

    栈的实现 特点FILO(先进后出) 假设栈的空间为8 top == 0 不能出栈,已到栈底 top == 8 不能入栈,已到栈顶 top始终指向一个待插入的位置 push操作,1.写入数据,2.top ...

  3. px、em、rem、vw、vh、vm、rpx这些单位的

    px是像素 em是参考父元素的font-size的倍数 rem是参考根元素的font-size 常用于响应式,一般会让html的font-size:625%,body的大小为.16rem.这样1rem ...

  4. 商业模式(二):P2P网贷平台,利差和服务费为主的金融玩法

    2014~2015,先后在2家P2P平台工作过,还了解过其它若干武汉P2P平台. 结合自己的工作经历和理财经历,说几句~ 1.P2P网贷这种金融类的创业项目和经营风险,远高于制造业和服务业~      ...

  5. XML学习总结(2)——XML简单介绍

    一.XML概念 Extensible Markup Language,翻译过来为可扩展标记语言.Xml技术是w3c组织发布的,目前推荐遵循的是W3C组织于2000发布的XML1.0规范. 二.学习XM ...

  6. RecyclerView具体解释

    public class RecyclerView extends ViewGroup implements ScrollingView, NestedScrollingChild { 由上面的继承结 ...

  7. Onvif开发之Linux下gsoap的使用及移植

    一直以来都是在CSDN上面学习别人的东西,很多次想写点什么但是又无从写起.由于公司项目需要,最近一段时间在研究onvif,在网上找了很多资料,发现资料是非常多,但是很少有比较全的资料,或者资料太多无从 ...

  8. HDU 4010 Query on The Trees (动态树)(Link-Cut-Tree)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4010 题意; 先给你一棵树,有 \(4\) 种操作: 1.如果 \(x\) 和 \(y\) 不在同一 ...

  9. java 矩阵求逆

    package com.yang.matrix; public class TestMatrix { public static void main(String[] args) { // 测试数据 ...

  10. Shelled-out Commands In Golang

    http://nathanleclaire.com/blog/2014/12/29/shelled-out-commands-in-golang/ Shelled-out Commands In Go ...