android-async-http 开源框架可以使我们轻松地获取网络数据或者向服务器发送数据,最关键的是,它是异步框架,在底层使用线程池处理并发请求,效率很高,使用又特别简单。
以往我们在安卓上做项目,比如要下载很多图片、网页或者其他的资源,多数开发者会选择一个线程一个下载任务这种模型,因为安卓自带的 AndroidHttpClient 或者 java 带的 java.net.URL ,默认都是阻塞式操作。这种模型效率不高,对并发要求高的 APP 来讲,并不适用。有的人会选择使用 nio 自己实现,代码复杂度又很高。
AsyncHttpClient 作为 android-async-http 框架的一个核心应用类,使用简单,可以处理文本、二进制等各种格式的 web 资源。下面提供一些代码来看如何使用:
public class Downloader {
public static AsyncHttpClient mHttpc = new AsyncHttpClient();
public static String TAG = "Downloader";
public void downloadText(String uri){
mHttpc.get(uri, null, new AsyncHttpResponseHandler(){
@Override
public void onSuccess(String data){
Log.i(TAG, "downloaded, thread id " + Thread.currentThread().getId());
// TODO: do something on
}
@Override
public void onFailure(Throwable e, String data){
Log.i(TAG, "download failed.");
// TODO: error proceed
}
});
}
public void downloadImage(String uri, String savePath){
mHttpc.get(uri, new ImageResponseHandler(savePath));
}
public class ImageResponseHandler extends BinaryHttpResponseHandler{
private String mSavePath;
public ImageResponseHandler(String savePath){
super();
mSavePath = savePath;
}
@Override
public void onSuccess(byte[] data){
Log.i(TAG, "download image, file length " + data.length);
// TODO: save image , do something on image
}
@Override
public void onFailure(Throwable e, String data){
Log.i(TAG, "download failed");
// TODO : error proceed
}
}
};
上面的代码演示了如何使用AsyncHttpResponseHandler 和BinaryHttpResponseHandler ,相信 AsyncHttpClient 会给大家带来很大的便利。
分享到:
相关推荐
Android开源框架Android-async-http的研究与应用.pdf
最新Android开源框架AsyncHttpClient (android-async-http)
[开源]HTTP协议相关Android开源_android-async-http-master
android-async-http-master开源框架能够帮助我们更有效率的开发,对于解析json数据,http的get、post请求的处理等等
代码是从开源框架android-async-http来的,老版本的代码。(原来代码有个bug,现在已经修改)。源代码没有打印出请求url,有时候想看看请求的url地址,不方便,自己修改了下,在onstart和onfish方法里面可以打印相应...
https://oss.sonatype.org/content/repositories/snapshots/com/loopj/android/android-async-http/ Maven URL: https://oss.sonatype.org/content/repositories/snapshots/ GroupId: com.loopj.android ArtifactId...
[开源]Android开源项目WebSocket_async-http-client-master
github上的经典开源项目android-async-http-master
Asynchronous Http Client for ...https://github.com/loopj/android-async-http/blob/1.4.9/CHANGELOG.md Javadoc Latest Javadoc for 1.4.9 release are available here (also included in Maven repository): ...
android的异步网络加载,方便使用,免去多余的代码
Github上最火的Android开源项之Android-Async-Http。 Android-Async-Http是Android上的一个异步、基于回调的HTTP客户端开发包,建立在Apache的HttpClient库上。 在Android中使用这个异步HttpClient框架非常的方便...
Android Async-Http Demo
import eclipse可以正常使用
强大的网络请求库,...处理异步Http请求,并通过匿名内部类处理回调结果 Http请求均位于非UI线程,不会阻塞UI操作 通过线程池处理并发请求 处理文件上传、下载 响应结果自动打包JSON格式 自动处理连接断开时请求重连
android.async.http.jar包 包含1.2.0 至 1.4.8 版本。
最新异步网络请求android-async-http-1.4.5.jar
android-async-http 1.4.9版本,附带了其依赖的httpclient包
前端开源库-babel-plugin-transform-async-to-promisesBabel插件将异步转换为承诺,将异步/等待转换为承诺链
android-async-http-1.4.9.jar是一般使用Apache HTTP Client或者采用HttpURLConnect,但是直接使用这两个类库需要写大量的代码才能完成网络post和get请求,而使用android-async-http这个库可以大大的简化操作,它是...
android-async-http开源框架可以是我们轻松的获取网络数据或者向服务器发送数据,使用起来也很简单,具体详细使用看官网:https://github.com/loopj/android-async-http