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 params = new LinkedHashMap(); 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 params = new LinkedHashMap(); params.put("platform", "Android"); params.put("key", key); params.put("method", "getPraise"); commonPost(context, BASE_URL + "getConfig", params, handler); } public static LinkedHashMap validateParams( LinkedHashMap params, long time, String packagename) { params.put("System", "1"); StringBuilder sign = new StringBuilder(); // for (Entry 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 params, ResponseHandlerInterface handler) { commonGet(context, url, params, handler, true); } public static void commonGet(Context context, String url, LinkedHashMap 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 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 params, ResponseHandlerInterface handler) { commonPost(context, url, params, null, handler); } private static void commonPost(Context context, String url, LinkedHashMap params, HashMap files, ResponseHandlerInterface handler) { commonPost(context, url, params, files, handler, true); } private static void commonPost(Context context, String url, LinkedHashMap params, HashMap 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 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 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); } } }