android-async-http简单封装--笔记
2016-05-26 15:07
801 查看
android-async-http简单封装--笔记
我封装的的是我常用到的,至于上传与下载,以后有需求写了再更新
github: https://github.com/loopj/android-async-http
Asynchronous Http Client for Android
Android 异步 Http 请求
项目地址:https://github.com/loopj/android-async-http
文档介绍:http://loopj.com/android-async-http/
特点:(1) 在匿名回调中处理请求结果
(2) 在 UI 线程外进行 http 请求
(3) 文件断点上传
(4) 智能重试
(5) 默认 gzip 压缩
(6) 支持解析成 Json 格式
(7) 可将 Cookies 持久化到 SharedPreferences
1、封装:
2、调用:
我封装的的是我常用到的,至于上传与下载,以后有需求写了再更新
github: https://github.com/loopj/android-async-http
compile 'com.loopj.android:android-async-http:1.4.9'
Asynchronous Http Client for Android
Android 异步 Http 请求
项目地址:https://github.com/loopj/android-async-http
文档介绍:http://loopj.com/android-async-http/
特点:(1) 在匿名回调中处理请求结果
(2) 在 UI 线程外进行 http 请求
(3) 文件断点上传
(4) 智能重试
(5) 默认 gzip 压缩
(6) 支持解析成 Json 格式
(7) 可将 Cookies 持久化到 SharedPreferences
1、封装:
package com.czz.testhttp; import com.loopj.android.http.AsyncHttpClient; import com.loopj.android.http.AsyncHttpResponseHandler; import com.loopj.android.http.RequestParams; import cz.msebera.android.httpclient.Header; /** * Created by czz on 2016/5/26. */ public class TAsyBastClient { public interface DealS { public void success(String result); } public interface DealE { public void error(String result); } public interface DealFinal { public void d_final(); } private static AsyncHttpClient client = new AsyncHttpClient(); public static void get(String url, RequestParams params, AsyncHttpResultDeal asyncHttpResultDeal) { client.get(url, params, asyncHttpResultDeal); } public static void post(String url, RequestParams params, AsyncHttpResultDeal asyncHttpResultDeal) { client.post(url, params, asyncHttpResultDeal); } public static class AsyncHttpResultDeal extends AsyncHttpResponseHandler { DealS ds; DealE de; DealFinal df; /** * @param ds 请求-成功处理 */ public AsyncHttpResultDeal(DealS ds) { this(ds, null); } /** * @param ds 请求-成功处理 * @param de 请求-失败处理 */ public AsyncHttpResultDeal(DealS ds, DealE de) { this(ds, de, null); } /** * @param ds 请求-成功处理 * @param de 请求-失败处理 * @param df 请求-最终处理,比如不管请求成功还是失败都要关闭Dialog */ public AsyncHttpResultDeal(DealS ds, DealE de, DealFinal df) { this.ds = ds; this.de = de; this.df = df; } //请求开始 @Override public void onStart() { super.onStart(); } //请求成功 HTTP statusCode:200 ok @Override public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { if (ds != null) { if (responseBody != null && responseBody.length > 0) { String result = new String(responseBody); ds.success(result); } } if (df != null) { df.d_final(); } } //请求失败 HTTP statusCode:4XX (eg. 401, 403, 404) @Override public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { if (de != null) { if (responseBody != null && responseBody.length > 0) { String result = new String(responseBody); de.error(result); } } if (df != null) { df.d_final(); } } //重试 @Override public void onRetry(int retryNo) { super.onRetry(retryNo); } } }
2、调用:
public void getData() { TAsyBastClient.get(url,null,new TAsyBastClient.AsyncHttpResultDeal(new TAsyBastClient.DealS() { @Override public void success(String result) { Log.e("czz","success get -- " + result); } },null,null)); } public void postData() { RequestParams params = new RequestParams(); params.put("userid", "10497"); params.put("startindex", "1"); params.put("pagenum", "10"); TAsyBastClient.post(purl,params,new TAsyBastClient.AsyncHttpResultDeal(new TAsyBastClient.DealS() { @Override public void success(String result) { Log.e("czz","success post -- " + result); } })); }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories