Android HttpUtil工具类
2015-11-16 00:00
519 查看
摘要: 指定类型解析,android-async-http + gson 自定义类型解析指定对象
/** * get 方式 请求 返回指定类型 * @param mContext * @param url 路径 * @param requestMap 参数值,转json 传输 * @param callback 结果回调 */ public void get(final Context mContext, String url, RequestMapBean requestMap, final ResultCallback callback) { RequestParams param = RequestEncryDecryptUtil.commonJsonRequestParams(mContext, requestMap); AsyncHttpUtil.get(mContext, url, param, new BaseJsonHttpResponseParse(mContext) { @Override public void onSuccess(int statusCode, Header[] headers, JSONObject response) { super.onSuccess(statusCode, headers, response); if (callback.mType == String.class) { callback.onSuccess(response); } else { Object o = mGson.fromJson(string, callback.mType); callback.onSuccess(o); } } @Override public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) { super.onFailure(statusCode, headers, throwable, errorResponse); callback.onError(errorResponse); } }); }
public abstract class ResultCallback<T> { Type mType; public ResultCallback() { mType = getSuperclassTypeParameter(getClass()); } static Type getSuperclassTypeParameter(Class<?> subclass) { Type superclass = subclass.getGenericSuperclass(); if (superclass instanceof Class) { throw new RuntimeException("Missing type parameter."); } ParameterizedType parameterized = (ParameterizedType) superclass; return $Gson$Types.canonicalize(parameterized.getActualTypeArguments()[0]); } public abstract void onSuccess(T response); public abstract void onError(JSONObject errorResponse); }
public class AsyncHttpUtil { private static final String TAG = "AsyncHttpUtil"; private static AsyncHttpClient client = new AsyncHttpClient(); public static void get(Context context, String url, RequestParams param, AsyncHttpResponseHandler handler) { if (PhoneUtil.isConnectNet(context)) {; client.get(context, getAbsoluteUrl(url), param, handler); } else { ToastUtil.showMsg(context, "网络已断开"); handler.sendFinishMessage(); handler.onCancel(); } } }
相关文章推荐
- Java网络学习笔记2:设置Socket选项
- ACM-ICPC北京赛区2015网络同步赛E:Stamps
- Webkit 网络加载到DOM树创建的堆栈记录
- http-live-streaming 协议分析
- 安装操作系统centos6.5手动分区以及设置网络连通性
- 浅谈-----HTTP那些事
- 既然HTTP1.1协议里每个连接默认都是持久连接,那么为何当今所有报文都在使用Connetion:Keep-Alive
- android 与struts 使用HttpsUrlConnection进行数据(文件/字符)传送 (客户端例)
- 探秘volley缓存网络数据
- TCP:传输控制协议
- Android中采用HttpClient的工具类
- 通过ping和tracert命令来判断网络经过多少个路由
- 分享网络收集100个常用的jquery特效和插件打包下载
- [Django架构流程分析]Django HTTP请求的处理流程
- ios中用AFN做https
- 国内第一本有关网络日志分析的著作再获重印!
- 国内第一本有关网络日志分析的著作再获重印!
- 卷积神经网络在自然语言处理的应用
- bp神经网络的简单理解和使用
- Charles抓取iOS/Android应用网络封包