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<String, String> 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("resultCode");
|
String message = jsonObject.optString("msg");
|
if(errno == 1){
|
httpCallBack.onSuccess(jsonObject.optString("resObj"),message);
|
}else if(errno == 1002||errno == 1003){
|
String errorMsg = jsonObject.optString("errorMsg");
|
httpCallBack.onFail(errno,errorMsg);
|
}else{
|
String errorMsg = jsonObject.optString("errorMsg");
|
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;
|
}
|
}
|
}
|
});
|
}
|
/**
|
* Get请求
|
* @param url
|
* @param params
|
* @param cacheMode
|
* @param showLoadingDialog
|
* @param httpCallBack
|
*/
|
public void doGet(final String url, Map<String, String> params, CacheMode cacheMode, final boolean showLoadingDialog, final HttpListCallBack 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("resultCode");
|
String message = jsonObject.optString("msg");
|
int totalPage = jsonObject.optInt("totalPage");
|
if(errno == 1){
|
httpCallBack.onSuccess(jsonObject.optString("resObj"),message,totalPage);
|
}else if(errno == 1002||errno == 1003){
|
String errorMsg = jsonObject.optString("errorMsg");
|
httpCallBack.onFail(errno,errorMsg);
|
}else{
|
String errorMsg = jsonObject.optString("errorMsg");
|
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;
|
}
|
}
|
}
|
});
|
}
|
|
/**
|
* POST请求
|
* @param url
|
* @param params
|
* @param cacheMode
|
* @param showLoadingDialog
|
* @param httpCallBack
|
*/
|
public void doPostList(final String url, Map<String, String> params, CacheMode cacheMode, final boolean showLoadingDialog, final HttpListCallBack httpCallBack) {
|
OkGo.post(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("resultCode");
|
String message = jsonObject.optString("msg");
|
int totalPage = jsonObject.optInt("totalPage");
|
if(errno == 1){
|
httpCallBack.onSuccess(jsonObject.optString("resObj"),message,totalPage);
|
}else if(errno == 1002||errno == 1003){
|
String errorMsg = jsonObject.optString("errorMsg");
|
httpCallBack.onFail(errno,errorMsg);
|
}else{
|
String errorMsg = jsonObject.optString("errorMsg");
|
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;
|
}
|
}
|
}
|
});
|
}
|
/**
|
* Post请求
|
* @param url
|
* @param params
|
* @param cacheMode
|
* @param showLoadingDialog
|
* @param httpCallBack
|
*/
|
public void doPost(final String url, Map<String, String> 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("resultCode");
|
String message = jsonObject.optString("msg");
|
if(errno == 1){
|
httpCallBack.onSuccess(jsonObject.optString("resObj"),message);
|
}else if(errno == 1002||errno == 1003){
|
String errorMsg = jsonObject.optString("errorMsg");
|
httpCallBack.onFail(errno,errorMsg);
|
}else{
|
String errorMsg = jsonObject.optString("errorMsg");
|
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;
|
}
|
}
|
|
|
});
|
}
|
|
/**
|
* 上传文件
|
* @param url
|
* @param params
|
* @param uploadCallBack
|
* @param files
|
*/
|
public void uploadFiles(final String url, Map<String, String> params, final UploadCallBack uploadCallBack, List<File> files) {
|
OkGo.post(url)
|
.params(params)
|
.isMultipart(true)
|
.addFileParams("file", files)
|
.execute(new StringCallback() {
|
@Override
|
public void onBefore(BaseRequest request) {
|
super.onBefore(request);
|
PostRequest re = (PostRequest) request;
|
XLog.e("url:" + re.getUrl());
|
XLog.e("method:" + re.getMethod());
|
}
|
|
@Override
|
public void onSuccess(String s, Call call, Response response) {
|
XLog.e("result:" + s);
|
try {
|
JSONObject jsonObject = new JSONObject(s);
|
int errno = jsonObject.optInt("resultCode");
|
String message = jsonObject.optString("msg");
|
if(errno == 1){
|
uploadCallBack.onSuccess(jsonObject.optString("resObj"),message);
|
}else{
|
uploadCallBack.onFail(message);
|
}
|
} catch (JSONException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void upProgress(long currentSize, long totalSize, float progress, long networkSpeed) {
|
super.upProgress(currentSize, totalSize, progress, networkSpeed);
|
uploadCallBack.onProgress(currentSize, totalSize, progress, networkSpeed);
|
}
|
|
@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;
|
}
|
}
|
|
});
|
|
}
|
public void uploadFiles(final String url, Map<String, String> params, final UploadCallBack uploadCallBack, List<File> files,List<File> files2) {
|
OkGo.post(url)
|
.params(params)
|
.isMultipart(true)
|
.addFileParams("door", files)
|
.addFileParams("images", files2)
|
.execute(new StringCallback() {
|
@Override
|
public void onBefore(BaseRequest request) {
|
super.onBefore(request);
|
PostRequest re = (PostRequest) request;
|
XLog.e("url:" + re.getUrl());
|
XLog.e("method:" + re.getMethod());
|
}
|
|
@Override
|
public void onSuccess(String s, Call call, Response response) {
|
XLog.e("result:" + s);
|
try {
|
JSONObject jsonObject = new JSONObject(s);
|
int errno = jsonObject.optInt("resultCode");
|
String message = jsonObject.optString("msg");
|
if(errno == 1){
|
uploadCallBack.onSuccess(jsonObject.optString("resObj"),message);
|
}else{
|
uploadCallBack.onFail(message);
|
}
|
} catch (JSONException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void upProgress(long currentSize, long totalSize, float progress, long networkSpeed) {
|
super.upProgress(currentSize, totalSize, progress, networkSpeed);
|
uploadCallBack.onProgress(currentSize, totalSize, progress, networkSpeed);
|
}
|
|
@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;
|
}
|
}
|
|
});
|
|
}
|
/**
|
* 上传文件
|
* @param url
|
* @param params
|
* @param uploadCallBack
|
* @param files
|
*/
|
public void uploadFiles(final String url, Map<String, String> params, final UploadCallBack uploadCallBack, Map<String, File> files) {
|
PostRequest postRequest = OkGo.post(url);
|
postRequest.isMultipart(true);
|
for (String key : files.keySet()) {
|
postRequest.params(key, files.get(key));
|
}
|
postRequest.params(params)
|
.execute(new StringCallback() {
|
@Override
|
public void onBefore(BaseRequest request) {
|
super.onBefore(request);
|
PostRequest re = (PostRequest) request;
|
XLog.e("url:" + re.getUrl());
|
XLog.e("method:" + re.getMethod());
|
}
|
|
@Override
|
public void onSuccess(String s, Call call, Response response) {
|
XLog.e("result:" + s);
|
try {
|
JSONObject jsonObject = new JSONObject(s);
|
int errno = jsonObject.optInt("resultCode");
|
String message = jsonObject.optString("msg");
|
if(errno == 1){
|
uploadCallBack.onSuccess(jsonObject.optString("resObj"),message);
|
}else{
|
uploadCallBack.onFail(message);
|
}
|
} catch (JSONException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void upProgress(long currentSize, long totalSize, float progress, long networkSpeed) {
|
super.upProgress(currentSize, totalSize, progress, networkSpeed);
|
uploadCallBack.onProgress(currentSize, totalSize, progress, networkSpeed);
|
}
|
|
@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;
|
}
|
}
|
|
});
|
|
}
|
|
public interface UploadCallBack {
|
void onSuccess(String res, String msg);
|
|
void onFail(String s);
|
|
void onProgress(long currentSize, long totalSize, float progress, long networkSpeed);
|
}
|
}
|