这个网络请求库是基于Apache HttpClient库之上的一个异步网络请求处理库,网络处理均基于Android的非UI线程,通过回调方法处理请求结果。里面包含了client.post和client.get两种请求方式 ,如果以GET方式传输,所带参数附加在URL后直接传给服务器;如果以POST方式传输,则参数会被打包在数据包中传送给服务器。Get 方式需要使用 Request.QueryString 来取得变量的值;而 Post 方式通过 Request.Form 来访问提交的内容
其主要特性如下:
- 处理异步Http请求,并通过匿名内部类处理回调结果
- Http请求均位于非UI线程,不会阻塞UI操作
- 通过线程池处理并发请求
- 处理文件上传、下载
- 响应结果自动打包JSON格式
- 二进制文件下载(如图片)
- 自动处理连接断开时请求重连
- 持久化存储cooki,将cooki保存到你应用的SharedPreferences
- BinaryHttpResponseHandler类可以用来获取二进制数据,如图像和其他文件
-
简单用法:
AsyncHttpClient client =
new
AsyncHttpClient();
String url =
"http://www.google.com"
client.get(
url
,
new
AsyncHttpResponseHandler() {
@Override
public
void
onSuccess(String response) {
System.out.println(response);
}
});
BinaryHttpResponseHandler类下载图像:
AsyncHttpClient client = new AsyncHttpClient();
String[] allowedContentTypes = new String[] { "image/png", "image/jpeg" };client.get("http://example.com/file.png", new BinaryHttpResponseHandler(allowedContentTypes) {
@Override
public void onSuccess(byte[] fileData) {
// Do something with the file }
});