package org.aisen.android.network.http; import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Params implements Serializable { private static final long serialVersionUID = 5990125562753037686L; private Map<String, String> mParameters = new HashMap<String, String>(); private List<String> mKeys = new ArrayList<String>(); // 某些时候,参数列表不需要进行编码,例如将参数作为URL QUERY时,防止进行了二次编码导致服务器不能解析 private boolean encodeAble = true; public Params() { } public Params(String[] keys, String[] values) { for (int i = 0; i < keys.length; i++) { String key = keys[i]; mKeys.add(key); mParameters.put(key, values[i]); } } public Params(String key, String value) { mKeys.add(key); mParameters.put(key, value); } public int size() { return mKeys.size(); } public boolean containsKey(String key) { return mKeys.contains(key); } public List<String> getKeys() { return mKeys; } public void addParameter(String key, String value) { if (!mKeys.contains(key)) { mKeys.add(key); } mParameters.put(key, value); } public String getParameter(String key) { return mParameters.get(key); } public Map<String, String> getVaules() { return mParameters; } public void remove(String key) { if (mKeys.contains(key)) { mKeys.remove(key); mParameters.remove(key); } } public void addParams(Params params) { for (String key : params.getKeys()) { if (!mKeys.contains(key)) { mKeys.add(key); } mParameters.put(key, params.getParameter(key)); } } public boolean isEncodeAble() { return encodeAble; } public void setEncodeAble(boolean encodeAble) { this.encodeAble = encodeAble; } public void clearParams() { mParameters.clear(); mKeys.clear(); } @Override public String toString() { StringBuffer sb = new StringBuffer(); for (String key : mKeys) { sb.append(key).append("=").append(getParameter(key)).append(","); } return sb.toString(); } }