android-async-http,是一个android异步网络数据请求框架,网络处理均基于Android的非UI线程,通过回调方法处理请求结果。本篇简单介绍一下它的用法,分别实现上传和下载文件的功能。
一.android-async-http简介
开源项目android-async-http地址:
https://github.com/loopj/android-async-httpandroid-async-http核心组件:
a). AsyncHttpResponseHandler ——这是一个请求返回处理,成功,失败,开始,完成,等自定义的消息的类;
b). BinaryHttpResponseHandler extends AsyncHttpResponseHandler ——继承AsyncHttpResponseHandler的子类,这是一个字节流返回处理的类, 该类用于处理图片等类;
c). JsonHttpResponseHandler extends AsyncHttpResponseHandler ——继承AsyncHttpResponseHandler的子类,这是一个json请求返回处理服务器与客户端用json交流时使用的类;
d). AsyncHttpRequest implements Runnable ——基于线程的子类,用于 异步请求类, 通过AsyncHttpResponseHandler回调。
e). PersistentCookieStore implements CookieStore ——这是一个基于CookieStore的子类, 使用HttpClient处理数据,并且使用cookie持久性存储接口。f). RequestParams ——封装了参数处理 例如:
RequestParams params = new RequestParams(); params.put("uid", "00001"); params.put("password", "111111");
核心操作类:
a). RetryHandler implements HttpRequestRetryHandler——这是一个多个线程同步处理的类;
b). SerializableCookie implements Serializable——这是操作cookie 放入/取出数据的类;
c). SimpleMultipartEntity implements HttpEntity——用于处理多个请求实体封装;
d). SyncHttpClient extends AsyncHttpClient——同步客户端请求的类;
e). AsyncHttpClient——异步客户端请求的类。
二.android-async-http实践
- HttpClientUtil封装类的实现:
这个class对AsyncHttpClient进行了封装。
public class HttpClientUtil {
// 实例话对象
private static AsyncHttpClient client = new AsyncHttpClient();
static {
client.setTimeout(11000); // 设置链接超时,如果不设置,默认为10s
}
public static AsyncHttpClient getClient() {
return client;
}
// 用一个完整url获取一个string对象
public static void get(String urlString, AsyncHttpResponseHandler res) {
client.get(urlString, res);
}
// url里面带参数
public static void get(String urlString, RequestParams params,
AsyncHttpResponseHandler res) {
client.get(urlString, params, res);
}
//