package com.weikou.wpc.superad.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.loopj.android.http.AsyncHttpClient;
|
import com.loopj.android.http.RequestParams;
|
import com.loopj.android.http.ResponseHandlerInterface;
|
import com.loopj.android.http.SyncHttpClient;
|
import com.weikou.myselfsuperad.BuildConfig;
|
import com.ysh.wpc.appupdate.util.PackageUtils2;
|
|
public class BannerAPI {
|
|
public static final boolean isDebug = false;
|
|
private static final String TAG = "SuperAd";
|
|
public static String ERROR_NOTICE = "";
|
|
public static String BASE_URL = BannerConstant.HOST + "api/";
|
|
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);
|
}
|
|
/**
|
*
|
* @param context
|
* @param device
|
* 设备标识
|
* @param platform
|
* android/ios
|
* @param devicename
|
* 设备名称
|
* @param width
|
* 屏幕宽
|
* @param height
|
* 屏幕高
|
* @param kw
|
* @param key
|
* 后台给出
|
* @param handler
|
*/
|
public static void getBannerInfo(Context context, String device,
|
String platform, String devicename, String width, String height,
|
String kw, String key, ResponseHandlerInterface handler) {
|
LinkedHashMap<String, String> params = new LinkedHashMap<String, String>();
|
params.put("method", "requestad");
|
params.put("device", device);
|
params.put("platform", platform);
|
params.put("key", key);
|
params.put("devicename", devicename);
|
params.put("width", width);
|
params.put("height", height);
|
params.put("kw", kw);
|
commonPost(context, BASE_URL + "banner", params, handler);
|
}
|
|
public static void updateInfo(Context context, String type,
|
String contentid, String key, ResponseHandlerInterface handler) {
|
LinkedHashMap<String, String> params = new LinkedHashMap<String, String>();
|
params.put("method", "reportad");
|
params.put("key", key);
|
params.put("type", type);
|
params.put("contentid", contentid);
|
commonPost(context, BASE_URL + "banner", params, handler);
|
}
|
|
public static LinkedHashMap<String, String> validateParams(
|
LinkedHashMap<String, String> params) {
|
params.put("System", "1");
|
StringBuilder sign = new StringBuilder();
|
// for (Entry<String, String> entry : params.entrySet()) {
|
// sign.append(entry.getValue());
|
// }
|
sign.append(params.get("Method"))
|
.append(params.get("Uid") == null ? params.get("Device")
|
: params.get("Uid")).append(params.get("System"));
|
if (BuildConfig.DEBUG) {
|
Log.i(TAG, "sign: " + sign);
|
}
|
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());
|
LinkedHashMap<String, String> map = validateParams(params);
|
|
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) {
|
// if (BannerConstant.isDisableProxy()) {
|
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("Package", context.getPackageName());
|
int version = PackageUtils2.getVersionCode(context);
|
params.put("Version", version + "");
|
|
LinkedHashMap<String, String> map = validateParams(params);
|
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);
|
}
|
|
}
|
}
|