package com.gzsll.hupu.components.retrofit; import android.content.Context; import android.provider.Settings; import android.telephony.TelephonyManager; import com.gzsll.hupu.components.storage.UserStorage; import com.gzsll.hupu.util.SecurityUtil; import com.gzsll.hupu.util.SettingPrefUtil; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.Map; /** * Created by gzsll on 2014/9/23 0023. */ public class RequestHelper { private Context mContext; private UserStorage mUserStorage; public RequestHelper(Context mContext, UserStorage mUserStorage) { this.mContext = mContext; this.mUserStorage = mUserStorage; } public Map<String, String> getHttpRequestMap() { HashMap<String, String> map = new HashMap<String, String>(); map.put("client", getDeviceId()); map.put("night", SettingPrefUtil.getNightModel(mContext) ? "1" : "0"); if (mUserStorage.isLogin()) { try { map.put("token", URLEncoder.encode(mUserStorage.getToken(), "UTF-8")); } catch (Exception e) { e.printStackTrace(); } } return map; } public String getAndroidId() { return Settings.Secure.getString(mContext.getContentResolver(), Settings.Secure.ANDROID_ID); } public String getDeviceId() { String deviceId; TelephonyManager tm = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE); if (tm.getDeviceId() == null) { deviceId = getAndroidId(); } else { deviceId = tm.getDeviceId(); } return deviceId; } public String getRequestSign(Map<String, String> map) { ArrayList<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>(map.entrySet()); Collections.sort(list, new Comparator<Map.Entry<String, String>>() { @Override public int compare(Map.Entry<String, String> lhs, Map.Entry<String, String> rhs) { return lhs.getKey().compareTo(rhs.getKey()); } }); StringBuilder builder = new StringBuilder(); for (int i = 0; i < list.size(); i = i + 1) { if (builder.length() > 0) { builder.append("&"); } Map.Entry<String, String> map1 = list.get(i); builder.append(map1.getKey()).append("=").append(map1.getValue()); } builder.append(SettingPrefUtil.getHuPuSign(mContext)); return SecurityUtil.getMD5(builder.toString()); } }