You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
231 lines
7.4 KiB
231 lines
7.4 KiB
package xyz.fycz.myreader.webapi;
|
|
|
|
import xyz.fycz.myreader.common.ErrorCode;
|
|
import xyz.fycz.myreader.entity.JsonModel;
|
|
import xyz.fycz.myreader.util.HttpUtil;
|
|
import com.google.gson.Gson;
|
|
|
|
import xyz.fycz.myreader.util.utils.GsonExtensionsKt;
|
|
import xyz.fycz.myreader.webapi.callback.JsonCallback;
|
|
import xyz.fycz.myreader.webapi.callback.ResultCallback;
|
|
import xyz.fycz.myreader.util.ToastUtils;
|
|
|
|
import java.util.Map;
|
|
|
|
public class BaseApi {
|
|
|
|
/**
|
|
* post通用返回实体api
|
|
* @param url
|
|
* @param params
|
|
* @param c 返回的实体类型
|
|
* @param callback
|
|
*/
|
|
public static void postCommonApi(String url, Map<String, Object> params, final Class c, final ResultCallback callback) {
|
|
HttpDataSource.httpPost(url, HttpUtil.makePostOutput(params), new JsonCallback() {
|
|
@Override
|
|
public void onFinish(JsonModel jsonModel) {
|
|
if (jsonModel.isSuccess()) {
|
|
callback.onFinish(new Gson().fromJson(jsonModel.getResult(),c), jsonModel.getError());
|
|
} else {
|
|
noSuccess(jsonModel,callback);
|
|
}
|
|
}
|
|
@Override
|
|
public void onError(Exception e) {
|
|
error(e,callback);
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* post通用返回字符串api
|
|
* @param url
|
|
* @param params
|
|
* @param callback
|
|
*/
|
|
public static void postCommonReturnStringApi(String url, Map<String, Object> params, final ResultCallback callback) {
|
|
HttpDataSource.httpPost(url, HttpUtil.makePostOutput(params), new ResultCallback() {
|
|
@Override
|
|
public void onFinish(Object o, int code) {
|
|
callback.onFinish(o, code);
|
|
}
|
|
|
|
@Override
|
|
public void onError(Exception e) {
|
|
callback.onError(e);
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* get通用返回字符串api
|
|
* 通过api获取蓝奏云直链
|
|
* @param url
|
|
* @param params
|
|
* @param callback
|
|
*/
|
|
public static void postLanzousApi(String url, Map<String, Object> params, final ResultCallback callback, final String referer) {
|
|
HttpDataSource.httpPost(url, HttpUtil.makePostOutput(params), new ResultCallback() {
|
|
@Override
|
|
public void onFinish(Object o, int code) {
|
|
callback.onFinish(o, code);
|
|
}
|
|
|
|
@Override
|
|
public void onError(Exception e) {
|
|
callback.onError(e);
|
|
}
|
|
}, referer);
|
|
}
|
|
/**
|
|
* get通用返回实体api
|
|
* @param url
|
|
* @param params
|
|
* @param c 返回的实体类型
|
|
* @param callback
|
|
*/
|
|
public static void getCommonApi(String url, Map<String, Object> params, final Class c, final ResultCallback callback) {
|
|
HttpDataSource.httpGet(HttpUtil.makeURL(url,params), new JsonCallback() {
|
|
@Override
|
|
public void onFinish(JsonModel jsonModel) {
|
|
if (jsonModel.isSuccess()) {
|
|
callback.onFinish(new Gson().fromJson(jsonModel.getResult(),c), jsonModel.getError());
|
|
} else {
|
|
noSuccess(jsonModel,callback);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onError(Exception e) {
|
|
error(e,callback);
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* get通用返回字符串api
|
|
* @param url
|
|
* @param params
|
|
* @param callback
|
|
*/
|
|
public static void getCommonReturnStringApi(String url, Map<String, Object> params, final ResultCallback callback) {
|
|
HttpDataSource.httpGet(HttpUtil.makeURL(url,params), new JsonCallback() {
|
|
@Override
|
|
public void onFinish(JsonModel jsonModel) {
|
|
if (jsonModel.isSuccess()) {
|
|
callback.onFinish(jsonModel.getResult(), jsonModel.getError());
|
|
} else {
|
|
noSuccess(jsonModel, callback);
|
|
}
|
|
}
|
|
@Override
|
|
public void onError(Exception e) {
|
|
error(e,callback);
|
|
}
|
|
});
|
|
}
|
|
/**
|
|
* get通用返回字符串api
|
|
* @param url
|
|
* @param params
|
|
* @param callback
|
|
*/
|
|
public static void getCommonReturnStringApi2(String url, Map<String, Object> params, final ResultCallback callback) {
|
|
HttpDataSource.httpGet(HttpUtil.makeURL(url, params), new ResultCallback() {
|
|
@Override
|
|
public void onFinish(Object o, int code) {
|
|
callback.onFinish(o,code);
|
|
}
|
|
|
|
@Override
|
|
public void onError(Exception e) {
|
|
callback.onError(e);
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* get通用返回Html字符串api
|
|
* @param url
|
|
* @param params
|
|
* @param callback
|
|
*/
|
|
public static void getCommonReturnHtmlStringApi(String url, Map<String, Object> params, String charsetName, boolean isRefresh, final ResultCallback callback) {
|
|
HttpDataSource.httpGet_html(HttpUtil.makeURL(url, params), charsetName, isRefresh ,new ResultCallback() {
|
|
@Override
|
|
public void onFinish(Object o, int code) {
|
|
callback.onFinish(o,code);
|
|
}
|
|
|
|
@Override
|
|
public void onError(Exception e) {
|
|
callback.onError(e);
|
|
// error(e,callback);
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
/**
|
|
* get通用获取实体列表api
|
|
* @param url
|
|
* @param params
|
|
* @param c 返回是列表实体类型
|
|
* @param callback
|
|
*/
|
|
protected static void getCommonListApi(String url, Map<String, Object> params, final Class c, final ResultCallback callback) {
|
|
HttpDataSource.httpGet(HttpUtil.makeURL(url,params), new JsonCallback() {
|
|
@Override
|
|
public void onFinish(JsonModel jsonModel) {
|
|
if (jsonModel.isSuccess()) {
|
|
try {
|
|
callback.onFinish(GsonExtensionsKt.getGSON().fromJson(jsonModel.getResult(), c), jsonModel.getError());
|
|
}catch (Exception e){
|
|
callback.onError(e);
|
|
e.printStackTrace();
|
|
}
|
|
} else {
|
|
noSuccess(jsonModel,callback);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onError(Exception e) {
|
|
error(e,callback);
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* api异常处理
|
|
* @param e
|
|
* @param callback
|
|
*/
|
|
private static void error(Exception e, final ResultCallback callback){
|
|
/* if (e.toString().contains("SocketTimeoutException") || e.toString().contains("UnknownHostException")) {
|
|
TextHelper.showText("网络连接超时,请检查网络");
|
|
}*/
|
|
e.printStackTrace();
|
|
callback.onError(e);
|
|
}
|
|
|
|
/**
|
|
* api请求失败处理
|
|
* @param jsonModel
|
|
* @param callback
|
|
*/
|
|
private static void noSuccess(JsonModel jsonModel, ResultCallback callback){
|
|
if (!jsonModel.isSuccess()) {
|
|
if (jsonModel.getError() == ErrorCode.no_security) {
|
|
ToastUtils.showWarring("登录过期,请重新登录");
|
|
} else {
|
|
if (jsonModel.getError() == 0) {
|
|
callback.onFinish(jsonModel.getResult(), -1);
|
|
} else {
|
|
callback.onFinish(jsonModel.getResult(), jsonModel.getError());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|