文档网

课题_浅论Android网络请求库——android-async-http

课题_浅论Android网络请求库——android-async-http

在iOS开发中有大名鼎鼎的ASIHttpRequest库,用来处理网络请求操作,今天要介绍的是一个在Android上同样强大的网络请求库android-async-http,目前非常火的应用Instagram和Pinterest的Android版就是用的这个网络请求库。这个网络请求库是基于Apache HttpClient库之上的一个异步网络请求处理库,网络处理均基于Android的非UI线程,通过回调方法处理请求结果。

其主要特征如下:处理异步Http请求,并通过匿名内部类处理回调结果,Http异步请求均位于非UI线程,不会阻塞UI操作,通过线程池处理并发请求处理文件上传、下载,响应结果自动打包JSON格式.

自动处理连接断开时请求重连.使用android-async-http也非常简单,到官网http://www.wendangwang.com/android-async-http/下载依赖jar包,导入工程中libs文件夹下并添加到工程路径即可。通过下面的代码来创建一个异步请求:

首先,我们分析一下相应核心的操作类。

AsyncHttpResponseHandler ——这是一个请求返回处理 成功 失败 开始 完成 等自定义的消息的类

BinaryHttpResponseHandler extends AsyncHttpResponseHandler ——继承AsyncHttpResponseHandler的子类,这是一个字节流返回处理的类, 该类用于处理图片等类。

JsonHttpResponseHandler extends AsyncHttpResponseHandler ——继承AsyncHttpResponseHandler的子类,这是一个json请求返回处理服务器与客户端用json交流时使用的类.

AsyncHttpRequest implements Runnable ——基于线程的子类,用于 异步请求类, 通过AsyncHttpResponseHandler回调。

PersistentCookieStore implements CookieStore ——这是一个基于CookieStore的子类, 使用HttpClient处理数据,并且使用cookie持久性存储接口。

RequestParams ——封装了参数处理 例如:

* RequestParams params = new RequestParams();

* params.put("username", "james");

* params.put("password", "123456");

* params.put("email", "my@http://www.wendangwang.com");

* params.put("profile_picture", new File("pic.jpg")); // Upload a File

* params.put("profile_picture2", someInputStream); // Upload an InputStream

* params.put("profile_picture3", new ByteArrayInputStream(someBytes)); // Upload some bytes *

* AsyncHttpClient client = new AsyncHttpClient();

接下来核心类。

RetryHandler implements HttpRequestRetryHandler——这是一个多个线程同步处理的类

SerializableCookie implements Serializable——这是操作cookie 放入/取出数据的类

SimpleMultipartEntity implements HttpEntity——用于处理多个请求实体封装

相关文档
热门文档
你可能喜欢
评论