From 476dfd512b4880a65b502f86d623db5a58091279 Mon Sep 17 00:00:00 2001 From: linglongxin24 Date: Mon, 13 Jun 2016 13:26:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E9=80=82=E9=85=8D=E5=8D=95=E9=80=89=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/kejiang/yuandl/base/BaseFragment.java | 234 ++++++++---------- .../com/kejiang/yuandl/bean/JsonBean.java | 12 +- 2 files changed, 113 insertions(+), 133 deletions(-) diff --git a/libray_lxndroid/src/main/java/com/kejiang/yuandl/base/BaseFragment.java b/libray_lxndroid/src/main/java/com/kejiang/yuandl/base/BaseFragment.java index 882aa5f..3b16f29 100644 --- a/libray_lxndroid/src/main/java/com/kejiang/yuandl/base/BaseFragment.java +++ b/libray_lxndroid/src/main/java/com/kejiang/yuandl/base/BaseFragment.java @@ -32,6 +32,7 @@ import org.xutils.ex.HttpException; import org.xutils.http.RequestParams; import org.xutils.x; +import java.net.SocketTimeoutException; import java.util.List; import java.util.Map; @@ -41,25 +42,38 @@ import java.util.Map; * @author yuandl on 2016/1/15. * 描述主要干什么 */ -public class BaseFragment extends Fragment { +public class BaseFragment extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return super.onCreateView(inflater, container, savedInstanceState); } + + private Callback.Cancelable cancelable; /** * 加载数据对话框 */ public LoadingDialog loadingDialog; + /** * 异步网络请求类 * * @param requestParams */ - protected void ajax(RequestParams requestParams) { + private void ajax(RequestParams requestParams) { + ajax(requestParams, 0); + } + + /** + * 异步网络请求类 + * + * @param requestParams + * @param requestCode 区分不同的网络请求 + */ + protected void ajax(RequestParams requestParams, int requestCode) { if (!CheckNetwork.isNetworkAvailable(getContext())) { showToast("网络不可用,请检查网络连接!"); return; @@ -67,18 +81,6 @@ public class BaseFragment extends Fragment { if (loadingDialog == null) { loadingDialog = new LoadingDialog(getContext()); } - if (requestParams != null) { - String uri = requestParams.getUri(); - if (!uri.isEmpty()) { - String[] split = uri.split("/"); -// Logger.d("split=" + Arrays.toString(split)); - String method = split[split.length - 1].substring(0, split[split.length - 1].indexOf(".")); - String mode = split[split.length - 2]; - String sign = MD5.md5(mode + method); - requestParams.addBodyParameter("sign", sign); - } - - } Logger.d("url=" + requestParams.getUri() + "\nrequestParams=" + requestParams.getStringParams().toString()); List params = requestParams.getStringParams(); for (KeyValue keyValue : params) { @@ -86,136 +88,114 @@ public class BaseFragment extends Fragment { throw new RuntimeException("参数异常!"); } } - // jsonBean = JSON.parseObject(result, JsonBean.class); - cancelable = x.http().post(requestParams, new Callback.ProgressCallback() { - - @Override - public void onWaiting() { - } - - @Override - - public void onStarted() { - netOnStart(); - } - - @Override - public void onLoading(long total, long current, boolean isDownloading) { - netOnLoading(total, current, isDownloading); - } - - @Override - public void onSuccess(String result) { - Logger.json(result); - JsonBean jsonBean = null; - try { -// jsonBean = JSON.parseObject(result, JsonBean.class); - jsonBean = jsonParse(result); - if (jsonBean.getMsg() != null && !jsonBean.getMsg().isEmpty()) { - showToast(jsonBean.getMsg()); - } - if (jsonBean.getCode() == 200) { - Map data = new ArrayMap(); - if (null != jsonBean.getData() && jsonBean.getData().size() > 0) { - data = jsonBean.getData(); - } - netOnSuccess(data); - } else { - - netOnOtherStates(jsonBean.getCode(), jsonBean.getMsg()); - } - } catch (Exception e) { - if (loadingDialog != null && loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - Logger.d(result); - showToast("服务器异常!"); - e.printStackTrace(); - } finally { - } - } - - @Override - public void onError(Throwable ex, boolean isOnCallback) { - netOnFailure(ex); - - } - - @Override - public void onCancelled(CancelledException cex) { - Logger.d("用户取消了访问网络...."); - netOnCancelled(); - } - - @Override - public void onFinished() { - netOnFinish(); - } - - }); + cancelable = x.http().post(requestParams, new MyCallback(requestCode)); + } + + private class MyCallback implements Callback.ProgressCallback { + private int requestCode = 0; + + public MyCallback(int requestCode) { + this.requestCode = requestCode; + } + + @Override + public void onWaiting() { + } + + @Override + + public void onStarted() { + netOnStart(); + } + + @Override + public void onLoading(long total, long current, boolean isDownloading) { + netOnLoading(total, current, isDownloading); + } + + @Override + public void onSuccess(String result) { + Logger.json(result); + JsonBean jsonBean = null; + try { + jsonBean = jsonParse(result); + if (jsonBean.getMsg() != null && !jsonBean.getMsg().isEmpty()) { + showToast(jsonBean.getMsg()); + } + if (jsonBean.getStatus() == 1) { + Map data = new ArrayMap(); + if (null != jsonBean.getData() && jsonBean.getData().size() > 0) { + data = jsonBean.getData(); + } + netOnSuccess(data, requestCode); + } else { + + netOnOtherStates(jsonBean.getStatus(), jsonBean.getMsg()); + } + } catch (Exception e) { + if (loadingDialog != null && loadingDialog.isShowing()) { + loadingDialog.dismiss(); + } + Logger.d(result); + showToast("服务器异常!"); + e.printStackTrace(); + } finally { + } + } + + @Override + public void onError(Throwable ex, boolean isOnCallback) { + netOnFailure(ex); + + } + + @Override + public void onCancelled(Callback.CancelledException cex) { + Logger.d("用户取消了访问网络...."); + netOnCancelled(); + } + + @Override + public void onFinished() { + netOnFinish(); + } + } -// -// private JsonBean jsonParse(String json) throws JSONException { -// Map map = JSON.parseObject(json, new TypeToken>() { -// }.getType()); -// JsonBean jsonBean = new JsonBean(); -// if (map.containsKey("data")) { -// Object data = map.get("data"); -// System.out.println("data.getClass().getName()=" + data.getClass().getName()); -// Map rrData = null; -// if (data instanceof String) { -// System.out.println("data instanceof String"); -// rrData = new HashMap<>(); -// rrData.put("data", data.toString()); -// } else if (data instanceof JSONArray) { -// System.out.println("data instanceof JSONArray"); -// rrData = new HashMap<>(); -// rrData.put("data", data); -// } else if (data instanceof com.alibaba.fastjson.JSONObject) { -// System.out.println("data instanceof JSONObject"); -// rrData = (Map) data; -// } -// jsonBean.setData(rrData); -// } -// jsonBean.setCode(Integer.valueOf(map.get("code").toString())); -// jsonBean.setMsg(Tools.getValue(map, "msg")); -// -// return jsonBean; -// } private JsonBean jsonParse(String json) throws JSONException { - ArrayMap arrayMap= JSON.parseObject(json,new TypeReference>(){ + ArrayMap arrayMap = JSON.parseObject(json, new TypeReference>() { }.getType()); JsonBean jsonBean = new JsonBean(); if (arrayMap.containsKey("data")) { Object data = arrayMap.get("data"); System.out.println("data.getClass().getName()=" + data.getClass().getName()); - ArrayMap rrData = null; + ArrayMap rrData = null; if (data instanceof String) { System.out.println("data instanceof String"); - rrData = new ArrayMap(); + rrData = new ArrayMap(); rrData.put("data", data.toString()); } else if (data instanceof JSONArray) { System.out.println("data instanceof JSONArray"); - rrData = new ArrayMap(); + rrData = new ArrayMap(); rrData.put("data", data); } else if (data instanceof com.alibaba.fastjson.JSONObject) { System.out.println("data instanceof JSONObject"); - rrData = JSON.parseObject(data.toString(),new TypeReference>(){ + rrData = JSON.parseObject(data.toString(), new TypeReference>() { }.getType()); } jsonBean.setData(rrData); } - jsonBean.setCode(Integer.valueOf(arrayMap.get("code").toString())); + jsonBean.setStatus(Integer.valueOf(arrayMap.get("status").toString())); jsonBean.setMsg(Tools.getValue(arrayMap, "msg")); return jsonBean; } + /** * 开始访问网络 */ public void netOnStart() { - loadingDialog.show("正在请求网络..."); + loadingDialog.show("Loading..."); } /** @@ -224,6 +204,13 @@ public class BaseFragment extends Fragment { public void netOnLoading(long total, long current, boolean isUploading) { } + /** + * 访问网络成功 + */ + public void netOnSuccess(Map data, int requestCode) { + netOnSuccess(data); + } + /** * 访问网络成功 */ @@ -234,7 +221,7 @@ public class BaseFragment extends Fragment { /** * 访问网络成功的其他状态 */ - public void netOnOtherStates(int code, String msg) { + public void netOnOtherStates(int status, String msg) { if (loadingDialog != null && loadingDialog.isShowing()) { loadingDialog.dismiss(); } @@ -259,6 +246,8 @@ public class BaseFragment extends Fragment { String errorResult = httpEx.getResult(); Toast.makeText(x.app(), "网络错误:" + ex.getMessage(), Toast.LENGTH_LONG).show(); // ... + } else if (ex instanceof SocketTimeoutException) { + Toast.makeText(x.app(), "连接服务器超时", Toast.LENGTH_LONG).show(); } else { // 其他错误 Toast.makeText(x.app(), "连接服务器失败,请稍后再试!ex=" + ex.getMessage(), Toast.LENGTH_SHORT).show(); // ... @@ -273,16 +262,6 @@ public class BaseFragment extends Fragment { public void netOnCancelled() { } - - // /** -// * 弹出Toast便捷方法 -// * -// * @param charSequence -// */ -// public void showToast(CharSequence charSequence) { -// Toast.makeText(getContext(), charSequence, Toast.LENGTH_SHORT).show(); -// -// } private Toast toast; /** @@ -378,6 +357,7 @@ public class BaseFragment extends Fragment { ((ViewGroup) listView.getParent()).addView(emptyView); listView.setEmptyView(emptyView); } + @Override public void onDestroy() { super.onDestroy(); diff --git a/libray_lxndroid/src/main/java/com/kejiang/yuandl/bean/JsonBean.java b/libray_lxndroid/src/main/java/com/kejiang/yuandl/bean/JsonBean.java index c28d36a..c41573e 100644 --- a/libray_lxndroid/src/main/java/com/kejiang/yuandl/bean/JsonBean.java +++ b/libray_lxndroid/src/main/java/com/kejiang/yuandl/bean/JsonBean.java @@ -9,16 +9,16 @@ import java.util.Map; * json解析工具类对象 */ public class JsonBean { - private int code; + private int status; private String msg; private Map data; - public int getCode() { - return code; + public int getStatus() { + return status; } - public void setCode(int code) { - this.code = code; + public void setStatus(int status) { + this.status = status; } public String getMsg() { @@ -40,7 +40,7 @@ public class JsonBean { @Override public String toString() { return "JsonBean{" + - "code=" + code + + "status=" + status + ", msg='" + msg + '\'' + ", data=" + data + '}';