AsyncHttpClient的使用

最近一直忙着出差,也没时间更新博客,现在回来了,可以正常的更新博客了。

AsyncHttpClient简介

AsyncHttpClient是专门针对Android在Apache的HttpClient基础上构建的异步的callback-based http client,可以大大简化网络请求操作,它的所有请求都是独立在UI主线程之外,通过回调方法处理请求结果,采用android  Handler message 机制传递信息。

AsyncHttpClient特性
(1)采用异步http请求,并通过匿名内部类处理回调结果
(2)http请求独立在UI主线程之外
(3)采用线程池来处理并发请求
(4)采用RequestParams类创建GET/POST参数
(5)不需要第三方包即可支持Multipart file文件上传
(6)用BinaryHttpResponseHandler类下载二进制文件
(7)用JsonHttpResponseHandler类自动将响应结果解析为json格式
(8)持久化cookie存储,可以将cookie保存到你的应用程序的SharedPreferences中

AsyncHttpClient的使用

需要在build.gradle中添加依赖

 compile 'com.loopj.android:android-async-http:1.4.9'

get请求的使用,示例代码:

 String url="http://apis.juhe.cn/mobile/get?phone=15711492842&key=4e12ebd27315d998b61d2606f463b50d";
                asyncHttpClient.get(url, null, new AsyncHttpResponseHandler() {
                    @Override
                    public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
                        Log.e("ssss",new String(responseBody));
                    }

                    @Override
                    public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {

                    }
                });

post请求的使用,示例代码:

String postUrl="http://v.juhe.cn/toutiao/index";
                RequestParams params=new RequestParams();
                params.put("type","社会");
                params.put("key","4867f81a3bcde50c94e6103a95cde181");
                asyncHttpClient.post(postUrl, params, new AsyncHttpResponseHandler() {
                    @Override
                    public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
                        Log.e("ssss",new String(responseBody));
                    }

                    @Override
                    public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {

                    }
                });

下载功能,示例代码:

 String imgUrl="http://img.lanrentuku.com/img/allimg/1707/14988864745279.jpg";
                asyncHttpClient.get(imgUrl, null, new BinaryHttpResponseHandler() {
                    @Override
                    public void onSuccess(int statusCode, Header[] headers, byte[] binaryData) {
                        Bitmap bitmap = BitmapFactory.decodeByteArray(binaryData, 0, binaryData.length);
                        Bitmap compressBitmap = compressImage(bitmap);
                        mIvPhoto.setImageBitmap(compressBitmap);
                    }

                    @Override
                    public void onFailure(int statusCode, Header[] headers, byte[] binaryData, Throwable error) {

                    }
                });

上传文件功能,示例代码:

 String uploadUrl="http://192.168.1.92:8080/webapps/ROOT";
                File file=new File("/storage/emulated/0/66666.png");
                RequestParams paramsFile=new RequestParams();
                try {
                    paramsFile.put("hhhh",file);
                    asyncHttpClient.post(uploadUrl, paramsFile, new AsyncHttpResponseHandler() {
                        @Override
                        public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
                            Log.e("success",new String(responseBody));
                        }

                        @Override
                        public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
                            Log.e("failure",error.getMessage());
                        }
                    });
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }

上面的代码演示了如何使用 AsyncHttpClient  ,相信 AsyncHttpClient  会给大家带来很大的便利。

Demo

csdn:

https://download.csdn.net/download/wen_haha/10600941

github:

https://github.com/kongkongdaren/AsyncHttpClientDemo

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值