官网介绍: http://loopj.com/android-async-http/

git仓库:https://github.com/loopj/android-async-http


android-async-http最简单使用:

1.获取一个AsyncHttpClient对象

AsyncHttpClient client = new AsyncHttpClient();

2.调用AsyncHttpClient的get或者post方法,实现回调方法AsyncHttpResponseHandler


AsyncHttpClient类通常用在android应用程序中创建异步GET, POST, PUT和DELETE HTTP请求,请求参数通过RequestParams实例创建,响应通过重写匿名内部类ResponseHandlerInterface方法处理。

带参数的使用方法:

get:

通过RequestParams类添加参数

RequestParams params = new RequestParams();params.put("", "");client.get("http://www.baidu.com", params,new AsyncHttpResponseHandler() {@Override@Deprecatedpublic void onFailure(Throwable error) {super.onFailure(error);Log.e(TAG, "onFailure");}@Overridepublic void onFinish() {super.onFinish();Log.e(TAG, "onFinish");}@Overridepublic void onStart() {super.onStart();Log.e(TAG, "onStart");}@Overridepublic void onSuccess(int arg0, Header[] arg1, byte[] arg2) {super.onSuccess(arg0, arg1, arg2);Log.e(TAG, "onSuccess");String string = new String(arg2);tv_context.setText(string);}});

post请求方式和get差不多,只是换一个方式而已。

下面是上传图片到服务器

RequestParams params = new RequestParams();
params.put("file_path", new File(file_path));

RequestParams params = new RequestParams();params.put("file_path", new File(file_path));client.post(url, params, new AsyncHttpResponseHandler() {@Overridepublic void onSuccess(int statusCode, Header[] headers,byte[] responseBody) {}@Overridepublic void onFailure(int statusCode, Header[] headers,byte[] responseBody, Throwable error) {}@Overridepublic void onProgress(int bytesWritten, int totalSize) {super.onProgress(bytesWritten, totalSize);}});

onProgress方法中可以添加进度显示操作

当然, 也支持图片文件添加为字节流上传。

那么每次请求是不是都要获取一遍AsyncHttpClient对象了,看看官方提供的例子:

public class TwitterRestClient {    private static final String BASE_URL = "http://api.twitter.com/1/";    private static AsyncHttpClient client = new AsyncHttpClient();    public static void get(String url, RequestParams params,  AsyncHttpResponseHandler responseHandler) {        client.get(getAbsoluteUrl(url), params, responseHandler);    }    public static void post(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {        client.post(getAbsoluteUrl(url), params, responseHandler);    }    private static String getAbsoluteUrl(String relativeUrl) {        return BASE_URL + relativeUrl;    }}

推荐使用一个静态的AsyncHttpClient对象,我们可以封装一个请求静态类,包括get/ post无参请求,get/ post带参请求,上传,下载方法。。每次只需调用对应的方法就行了。

更多详细的的使用方法可以参考官方的文档:http://loopj.com/android-async-http/


因为是异步网络请求框架,当然不要忘记了网络权限:





更多相关文章

  1. Android应用程序四种数据存取方法总结
  2. traceview的使用方法
  3. android Bimtap 各种图片处理方法、图片特效
  4. android 9.0获取mac地址的方法
  5. Android实现音量调节的方法
  6. Android Bitmap对象与byte[]相互转换
  7. android常用intent的方法
  8. Android 整屏截图与区域指定view或layout截屏并返回bitmap对象
  9. Android右滑返回上一个界面的实现方法

随机推荐

  1. Android之TextView实现文字过长时省略部
  2. android 读取文件相关
  3. android语言三
  4. Android.Could not find *.apk in androi
  5. 在eclipse里卸载已安装的插件[例如Androi
  6. GreenDao 3.3.0 增删改查的使用(三)
  7. Android(安卓)Room牛刀小试
  8. Android(安卓)流式布局
  9. Android(安卓)常见Action
  10. 提高android gradle构建速度的努力