对于Android-Async-Http库来说,不推荐使用,原因有两点:
1、作者已停止维护
2、Android5.0后弃用HttpClient,Android-Async-Http是基于HttpClient库之上的网络请求处理库
该篇文章仅供了解学习使用。
Android-Async-Http的Github地址:https://github.com/loopj/android-async-http
Android-Async-Http官方文档:loopj.com/android-async-http/
官方文档描述此库的特点:
(1)使用4.3.6以上版本的HttpClient来代替Android提供的DefaultHttpClient
(2)兼容Android API 23及以上
(3)发送异步HTTP请求,处理匿名回调中的响应
(4)非UI线程执行HTTP请求
(5)使用线程池来限制并发资源的使用
(6)使用RequestParams作为GET/POST参数构造器
(7)多部分文件上传不需要其它第三方库
(8)JSON数据流的上传不需要额外的库
(9)能处理循环和相对重定向
(10)应用程序开销很小,总共只有90kb
(11)为移动连接自动智能请求重试优化
(12)支持超快的请求自动gzip响应解码
(13)BinaryHttpResponseHandler支持二进制通信协议
(14)使用JsonHttpResponseHandler将内置响应解析为JSON
(15)使用FileAsyncHttpResponseHandler将响应直接保存到文件中
(16)持久cookie存储,将cookie保存到SharedPreferences中
(17)使用BaseJsonHttpResponseHandler与Jackson JSON、GSON、或其他JSON序列化库集成
(18)使用SaxAsyncHttpResponseHandler支持SAX解析器
(19)支持语言和内容编码,而不仅仅是UTF-8
Android-Async-Http是一个强大的网络请求库,这个库是基于Apache HttpClient库之上的一个异步网络请求处理库,网络处理均基于Android的非UI线程,通过回调方法处理请求结果。
在Android Studio中不需要下载jar包,直接添加依赖即可:
dependencies {
compile 'com.loopj.android:android-async-http:1.4.9'
}
接下来再导入http包:
import com.loopj.android.http.*;
一、使用步骤
1、创建AsyncHttpClient对象;
2、如果需要参数,可以创建RequestParams对象添加参数,如果不需要参数,可跳过这一步;
3、按需要调用AsyncHttpClient的某个GET/POST的方法,传递需要的callback接口实现。
二、RequestParams给GET/POST请求添加参数
RequestParams类用于向请求中添加可选的GET或POST参数。RequestParams可以以多种方式构建和构造:
(1)创建空RequestParams并立即添加一些参数
RequestParams params = new RequestParams();
params.put("key1", "value1");
params.put("key2", "value2");
(2)为单个参数创建RequestParams
RequestParams params = new RequestParams("key", "value");
(3)从已存在的key/value映射中创建RequestParams
HashMap