package com.yeshi.appupdate.api;
|
|
import java.io.File;
|
import java.io.FileNotFoundException;
|
import java.util.HashMap;
|
import java.util.LinkedHashMap;
|
import java.util.Map.Entry;
|
|
import android.content.Context;
|
import android.util.Log;
|
|
import com.lcjian.library.util.common.PackageUtils2;
|
import com.lcjian.library.util.common.StringUtils;
|
import com.lcjian.library.util.security.MD5Utils;
|
import com.loopj.android.http.AsyncHttpClient;
|
import com.loopj.android.http.RequestParams;
|
import com.loopj.android.http.ResponseHandlerInterface;
|
import com.loopj.android.http.SyncHttpClient;
|
import com.yeshi.appupdate.BuildConfig;
|
|
public class AppUpdateAPI {
|
|
public static final boolean isDebug = false;
|
|
private static final String TAG = "SuperAd";
|
|
public static String ERROR_NOTICE = "";
|
|
public static String BASE_URL = APPUpdateConstant.HOST + "update/";
|
|
private static AsyncHttpClient asyncHttpClient = new AsyncHttpClient();
|
|
private static SyncHttpClient syncHttpClient = new SyncHttpClient();
|
|
static {
|
asyncHttpClient.setTimeout(60 * 1000);
|
syncHttpClient.setTimeout(60 * 1000);
|
asyncHttpClient.setURLEncodingEnabled(false);
|
syncHttpClient.setURLEncodingEnabled(false);
|
}
|
|
public static void getAppUpdateInfo(Context context, String device,
|
String platform, String key, String versionCode,
|
ResponseHandlerInterface handler) {
|
LinkedHashMap<String, String> params = new LinkedHashMap<String, String>();
|
params.put("device", device);
|
params.put("platform", "Android");
|
params.put("key", key);
|
params.put("system", "1");
|
params.put("device", device);
|
params.put("versioncode", versionCode);
|
commonPost(context, BASE_URL + "update", params, handler);
|
}
|
|
public static void getGoReview(Context context, String key,
|
ResponseHandlerInterface handler) {
|
LinkedHashMap<String, String> params = new LinkedHashMap<String, String>();
|
params.put("platform", "Android");
|
params.put("key", key);
|
params.put("method", "getPraise");
|
commonPost(context, BASE_URL + "getConfig", params, handler);
|
}
|
|
public static LinkedHashMap<String, String> validateParams(
|
LinkedHashMap<String, String> params, long time, String packagename) {
|
params.put("System", "1");
|
StringBuilder sign = new StringBuilder();
|
// for (Entry<String, String> entry : params.entrySet()) {
|
// sign.append(entry.getValue());
|
// }
|
sign.append(packagename)
|
.append(StringUtils.isEmpty(params.get("uid")) ? params
|
.get("device") : params.get("uid"))
|
.append(params.get("system")).append(time)
|
.append("ViDeo2017xx");
|
if (BuildConfig.DEBUG) {
|
Log.i(TAG, "sign: " + sign);
|
}
|
params.put("Sign", MD5Utils.getMD532(sign.toString()));
|
params.put("Platform", "Android");
|
return params;
|
}
|
|
@SuppressWarnings("unused")
|
private static void commonGet(Context context, String url,
|
LinkedHashMap<String, String> params,
|
ResponseHandlerInterface handler) {
|
commonGet(context, url, params, handler, true);
|
}
|
|
public static void commonGet(Context context, String url,
|
LinkedHashMap<String, String> params,
|
ResponseHandlerInterface handler, boolean asyn) {
|
params.put("package", context.getPackageName());
|
int version = PackageUtils2.getVersionCode(context);
|
params.put("version", version + "");
|
long timestamp = System.currentTimeMillis();
|
params.put("timestamp", timestamp + "");
|
LinkedHashMap<String, String> map = validateParams(params, timestamp,
|
context.getPackageName());
|
RequestParams requestParams = new RequestParams(map);
|
if (BuildConfig.DEBUG) {
|
Log.i(TAG, "get url: " + url + "?" + requestParams.toString());
|
}
|
if (asyn) {
|
(asyncHttpClient).get(context, url, requestParams, handler);
|
} else {
|
(syncHttpClient).get(context, url, requestParams, handler);
|
}
|
}
|
|
private static void commonPost(Context context, String url,
|
LinkedHashMap<String, String> params,
|
ResponseHandlerInterface handler) {
|
commonPost(context, url, params, null, handler);
|
}
|
|
private static void commonPost(Context context, String url,
|
LinkedHashMap<String, String> params, HashMap<String, File> files,
|
ResponseHandlerInterface handler) {
|
commonPost(context, url, params, files, handler, true);
|
}
|
|
private static void commonPost(Context context, String url,
|
LinkedHashMap<String, String> params, HashMap<String, File> files,
|
ResponseHandlerInterface handler, boolean asyn) {
|
params.put("packagename", context.getPackageName());
|
int version = PackageUtils2.getVersionCode(context);
|
params.put("version", version + "");
|
long timestamp = System.currentTimeMillis();
|
params.put("timestamp", timestamp + "");
|
LinkedHashMap<String, String> map = validateParams(params, timestamp,
|
context.getPackageName());
|
RequestParams requestParams = new RequestParams(map);
|
if (BuildConfig.DEBUG) {
|
Log.i(TAG, "post url: " + url + "?" + requestParams.toString());
|
}
|
if (files != null) {
|
for (Entry<String, File> entry : files.entrySet()) {
|
try {
|
requestParams.put(entry.getKey(), entry.getValue());
|
} catch (FileNotFoundException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
if (asyn) {
|
asyncHttpClient.post(context, url, requestParams, handler);
|
} else {
|
syncHttpClient.post(context, url, requestParams, handler);
|
}
|
}
|
|
public static void commonGet(Context context, String url,
|
RequestParams params, ResponseHandlerInterface handler, boolean asyn) {
|
if (asyn) {
|
asyncHttpClient.get(context, url, params, handler);
|
} else {
|
syncHttpClient.get(context, url, params, handler);
|
}
|
}
|
|
public static void commonGet(Context context, String url,
|
ResponseHandlerInterface handler, boolean asyn) {
|
if (asyn) {
|
asyncHttpClient.get(context, url, handler);
|
} else {
|
syncHttpClient.get(context, url, handler);
|
}
|
|
}
|
}
|