package cn.trinea.android.common.entity; import java.net.URLConnection; import java.util.HashMap; import java.util.Map; import cn.trinea.android.common.util.HttpUtils; /** * <strong>HttpRequest</strong><br/> * <ul> * <strong>Constructor</strong> * <li>{@link cn.trinea.android.common.entity.HttpRequest#HttpRequest(String)}</li> * <li>{@link cn.trinea.android.common.entity.HttpRequest#HttpRequest(String, java.util.Map)}</li> * </ul> * <ul> * <strong>Setting</strong> * <li>{@link #setConnectTimeout(int)}</li> * <li>{@link #setReadTimeout(int)}</li> * <li>{@link #setParasMap(java.util.Map)}</li> * <li>{@link #setUserAgent(String)}</li> * <li>{@link #setRequestProperty(String, String)}</li> * <li>{@link #setRequestProperties(java.util.Map)}</li> * </ul> * * @author <a href="http://www.trinea.cn" target="_blank">Trinea</a> 2013-5-12 */ public class HttpRequest { private String url; private int connectTimeout; private int readTimeout; private Map<String, String> parasMap; private Map<String, String> requestProperties; public HttpRequest(String url) { this.url = url; this.connectTimeout = -1; this.readTimeout = -1; requestProperties = new HashMap<String, String>(); } public HttpRequest(String url, Map<String, String> parasMap) { this.url = url; this.parasMap = parasMap; this.connectTimeout = -1; this.readTimeout = -1; requestProperties = new HashMap<String, String>(); } public String getUrl() { return url; } /** * @return * @see java.net.URLConnection#getConnectTimeout() */ public int getConnectTimeout() { return connectTimeout; } /** * @param timeoutMillis * @see java.net.URLConnection#setConnectTimeout(int) */ public void setConnectTimeout(int timeoutMillis) { if (timeoutMillis < 0) { throw new IllegalArgumentException("timeout can not be negative"); } connectTimeout = timeoutMillis; } /** * @return * @see java.net.URLConnection#getReadTimeout() */ public int getReadTimeout() { return readTimeout; } /** * @param timeoutMillis * @see java.net.URLConnection#setReadTimeout(int) */ public void setReadTimeout(int timeoutMillis) { if (timeoutMillis < 0) { throw new IllegalArgumentException("timeout can not be negative"); } readTimeout = timeoutMillis; } /** * get paras map * * @return */ public Map<String, String> getParasMap() { return parasMap; } /** * set paras map * * @param parasMap */ public void setParasMap(Map<String, String> parasMap) { this.parasMap = parasMap; } /** * @return paras as string */ public String getParas() { return HttpUtils.joinParasWithEncodedValue(parasMap); } /** * @param field * @param newValue * @see java.net.URLConnection#setRequestProperty(String, String) */ public void setRequestProperty(String field, String newValue) { requestProperties.put(field, newValue); } /** * @param field * @see java.net.URLConnection#getRequestProperty(String) */ public String getRequestProperty(String field) { return requestProperties.get(field); } /** * same to {@link #setRequestProperty(String, String)} filed is User-Agent * * @param value * @see java.net.URLConnection#setRequestProperty(String, String) */ public void setUserAgent(String value) { requestProperties.put("User-Agent", value); } /** * @return */ public Map<String, String> getRequestProperties() { return requestProperties; } /** * @param requestProperties */ public void setRequestProperties(Map<String, String> requestProperties) { this.requestProperties = requestProperties; } }