diff --git a/android-jdk6-redkale/src/org/redkale/net/client/HttpClient.java b/android-jdk6-redkale/src/org/redkale/net/client/HttpClient.java index 79f1f9792..90ac55160 100644 --- a/android-jdk6-redkale/src/org/redkale/net/client/HttpClient.java +++ b/android-jdk6-redkale/src/org/redkale/net/client/HttpClient.java @@ -9,7 +9,7 @@ import java.net.*; import java.util.*; /** - * + * * 待开发…… * * @see http://www.redkale.org @@ -17,18 +17,20 @@ import java.util.*; */ public final class HttpClient { - protected List cookies; + protected Map cookies; protected Map headers; protected Map params; - protected final HttpFactory factory; + protected final HttpFactory root; protected final URL url; - HttpClient(HttpFactory factory, URL url) { - this.factory = factory; + private String method = "GET"; + + HttpClient(HttpFactory root, URL url) { + this.root = root; this.url = url; } @@ -36,52 +38,60 @@ public final class HttpClient { return this; } + public HttpClient getMethod() { + this.method = "GET"; + return this; + } + + public HttpClient postMethod() { + this.method = "POST"; + return this; + } + public Map getHeaders() { - return headers == null ? null : new HashMap(headers); + return this.headers == null ? null : new HashMap(this.headers); } public HttpClient addHeader(String name, String value) { - if (headers == null) this.headers = new HashMap(); - headers.put(name, value); + if (this.headers == null && name != null) this.headers = new HashMap(); + this.headers.put(name, value); + return this; + } + + public HttpClient addHeader(final Map headerMap) { + if (headerMap == null || headerMap.isEmpty()) return this; + if (this.headers == null) this.headers = new HashMap(); + this.headers.putAll(headerMap); return this; } public HttpClient removeHeader(String name) { - if (this.headers == null) return this; + if (this.headers == null || name == null) return this; headers.remove(name); return this; } - public List getCookies() { - return cookies == null ? null : new ArrayList(cookies); + public Map getCookies() { + return this.cookies == null ? null : new HashMap(this.cookies); } - public HttpClient addCookie(HttpCookie cookie) { - if (cookies == null) this.cookies = new ArrayList(); - if (cookie != null) cookies.add(cookie); + public HttpClient addCookie(final HttpCookie cookie) { + if (this.cookies == null) this.cookies = new HashMap(); + if (cookie != null) this.cookies.put(cookie.getName(), cookie); return this; } - public HttpClient addCookie(HttpCookie... cookies) { - if (cookies == null) this.cookies = new ArrayList(); - if (cookies != null) { - for (HttpCookie c : cookies) { - if (c != null) this.cookies.add(c); - } + public HttpClient addCookie(final HttpCookie... httpCookies) { + if (httpCookies == null || httpCookies.length < 1) return this; + if (this.cookies == null) this.cookies = new HashMap(); + for (HttpCookie c : httpCookies) { + if (c != null) this.cookies.put(c.getName(), c); } return this; } - public HttpClient removeCookie(String name) { - if (this.cookies == null) return this; - HttpCookie cookie = null; - for (HttpCookie c : cookies) { - if (c.getName().equals(name)) { - cookie = c; - break; - } - } - cookies.remove(cookie); + public HttpClient removeCookie(final String name) { + if (this.cookies != null && name != null) this.cookies.remove(name); return this; } diff --git a/android-jdk6-redkale/src/org/redkale/net/client/HttpFactory.java b/android-jdk6-redkale/src/org/redkale/net/client/HttpFactory.java index 91c90bd0b..6eeca4e1d 100644 --- a/android-jdk6-redkale/src/org/redkale/net/client/HttpFactory.java +++ b/android-jdk6-redkale/src/org/redkale/net/client/HttpFactory.java @@ -21,7 +21,7 @@ public class HttpFactory { final HttpFactory parent; - final List defaultCookies = new CopyOnWriteArrayList(); + final Map defaultCookies = new ConcurrentHashMap(); final Map defaultHeaders = new ConcurrentHashMap(); @@ -56,28 +56,21 @@ public class HttpFactory { } public HttpFactory addDefaultCookie(HttpCookie cookie) { - if (cookie != null) defaultCookies.add(cookie); + if (cookie != null) defaultCookies.put(cookie.getName(), cookie); return this; } public HttpFactory addDefaultCookie(HttpCookie... cookies) { if (cookies != null) { for (HttpCookie c : cookies) { - if (c != null) defaultCookies.add(c); + if (c != null) defaultCookies.put(c.getName(), c); } } return this; } public HttpFactory removeDefaultCookie(String name) { - HttpCookie cookie = null; - for (HttpCookie c : defaultCookies) { - if (c.getName().equals(name)) { - cookie = c; - break; - } - } - defaultCookies.remove(cookie); + defaultCookies.remove(name); return this; }