package com.moral.screen.httputils; import android.content.Context; import android.content.Intent; import com.lzy.okgo.OkGo; import com.lzy.okgo.cache.CacheMode; import com.lzy.okgo.callback.StringCallback; import com.lzy.okgo.request.BaseRequest; import com.lzy.okgo.request.PostRequest; import com.moral.andbrickslib.utils.ActivityManager; import com.moral.andbrickslib.utils.log.XLog; import org.json.JSONException; import org.json.JSONObject; import java.io.File; import java.util.List; import java.util.Map; import okhttp3.Call; import okhttp3.Response; /** * 作者: hjzhang * 日期: 2017/3/23. */ public class HttpUtils { private Context mConetext; public HttpUtils(Context context) { this.mConetext = context; } /** * Get请求 * * @param url * @param params * @param cacheMode * @param showLoadingDialog * @param httpCallBack */ public void doGet(final String url, Map params, CacheMode cacheMode, final boolean showLoadingDialog, final HttpCallBack httpCallBack) { OkGo.get(url) .params(params) .cacheKey(String.valueOf(url)) .tag(String.valueOf(url)) .cacheMode(cacheMode) .execute(new StringCallback() { @Override public void onBefore(BaseRequest request) { super.onBefore(request); XLog.e("url:" + request.getUrl()); XLog.e("method:" + request.getMethod()); XLog.e("params:" + request.getParams().toString()); if (showLoadingDialog) httpCallBack.showLoadingDialog(); } @Override public void onSuccess(String s, Call call, Response response) { XLog.e("result:" + s); try { JSONObject jsonObject = new JSONObject(s); int errno = jsonObject.optInt("code"); String message = jsonObject.optString("message"); if (errno == 1) { httpCallBack.onSuccess(jsonObject.optString("data"), message); } else { String errorMsg = jsonObject.optString("message"); httpCallBack.onFail(errno, errorMsg); } } catch (JSONException e) { e.printStackTrace(); } } @Override public void onError(Call call, Response response, Exception e) { super.onError(call, response, e); if (response != null) { int httpCode = response.code(); switch (httpCode) { case 400: XLog.e("请求的语法出错"); T.show("请求的语法出错"); break; case 401: XLog.e("未授权"); T.show("未授权"); break; case 403: XLog.e("请求被拒绝"); T.show("请求被拒绝"); break; case 404: XLog.e("请求的接口不存在"); T.show("请求的接口不存在"); break; case 408: XLog.e("请求超时"); T.show("请求超时"); break; case 500: XLog.e("服务器错误"); T.show("服务器错误"); break; case 503: XLog.e("服务器停机或正在维护"); T.show("服务器停机或正在维护"); break; } } } }); } public void doPost(final String url, Map params, CacheMode cacheMode, final boolean showLoadingDialog, final HttpCallBack httpCallBack) { OkGo.post(url) .cacheKey(String.valueOf(url)) .tag(String.valueOf(url)) .cacheMode(cacheMode) .params(params, true) .execute(new StringCallback() { @Override public void onBefore(BaseRequest request) { super.onBefore(request); XLog.e("url:" + request.getUrl()); XLog.e("method:" + request.getMethod()); XLog.e("params:" + request.getParams().toString()); if (showLoadingDialog) httpCallBack.showLoadingDialog(); } @Override public void onSuccess(String s, Call call, Response response) { XLog.e("result:" + s); try { JSONObject jsonObject = new JSONObject(s); int errno = jsonObject.optInt("code"); String message = jsonObject.optString("message"); if (errno == 1) { httpCallBack.onSuccess(jsonObject.optString("data"), message); } else { String errorMsg = jsonObject.optString("message"); httpCallBack.onFail(errno, errorMsg); } } catch (JSONException e) { e.printStackTrace(); } } @Override public void onError(Call call, Response response, Exception e) { super.onError(call, response, e); if (response == null) return; int httpCode = response.code(); switch (httpCode) { case 400: T.show("请求的语法出错"); break; case 401: T.show("未授权"); break; case 403: T.show("请求被拒绝"); break; case 404: T.show("请求的接口不存在"); break; case 408: T.show("请求超时"); break; case 500: T.show("服务器错误"); break; case 503: T.show("服务器停机或正在维护"); break; } } }); } }