android-async-http开源项目可以是我们轻松的获取网络数据或者向服务器发送数据,使用起来非常简单。是基于Apache HttpClient库之上的一个异步网络请求处理库,网络处理均基于Android的非UI线程,通过回调方法处理请求结果。
其主要特征如下:
处理异步Http请求,并通过匿名内部类处理回调结果。
Http请求均位于非UI线程,不会阻塞UI操作。
通过线程池处理并发请求。处理文件上传、下载。
响应结果自动打包JSON格式。自动处理连接断开时请求重连。
使用步骤:
1.导包:把android-async-http-master\releases下面最新的jar包放到应用到libs下。
2.设置网络权限。
<uses-permissionandroid:name="android.permission.INTERNET"/>
3.创建异步客户端对象。
4.获取uri网络路径。
5.执行get/post请求
a)如果成功创建工厂对象。
b)工厂对象的decodeByteArray把字节转换成Bitmap对象。
AsyncHttpClientclient = newAsyncHttpClient();// 创建异步请求的客户端对象
RequestParamsparams = new RequestParams();//创建请求参数的封装对象
// 执行post方法
client.post(url, params,newAsyncHttpResponseHandler() {
/**
* 成功处理的方法 statusCode:响应的状态码; headers:相应的头信息。比如响应的时间,响应的服务器 ;
*responseBody:响应内容的字节
*/
@Override
public void onSuccess(int statusCode,Header[] headers,
byte[] responseBody) {
if (statusCode ==200) {// 状态码为200时响应成功
Bitmap bitmap = BitmapFactory.decodeByteArray(responseBody,
0, responseBody.length);
imageView.setImageBitmap(bitmap);
}
}
/**
* 失败处理的方法 error:响应失败的错误信息封装到这个异常对象中
*/
@Override
public void onFailure(int statusCode,Header[] headers,
byte[] responseBody,Throwable error) {
error.printStackTrace();//把错误信息打印出轨迹来
}
});