package li.http; import java.net.HttpCookie; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * Cookie存储区 */ public class CookieStore { private List<HttpCookie> cookies = new ArrayList<HttpCookie>(); /** * 存储一些Cookie */ public void addAll(List<HttpCookie> cookies) { for (HttpCookie cookie : cookies) { add(cookie); } } /** * 存储一个Cookie,如有重复会替换 */ public void add(HttpCookie cookie) { for (HttpCookie each : cookies) { if (Util.sameExceptValue(cookie, each)) { each.setValue(cookie.getValue()); return; } } cookies.add(cookie); } /** * 返回存储的所有Cookie */ public List<HttpCookie> getCookies() { return this.cookies; } /** * 从CookieString中获取特定名称的Cookie的值 */ public static String getCookie(String cookies, String key) { String value = ""; int start = cookies.indexOf(key); if (start > 0) { String temp = cookies.substring(start); value = temp.substring(temp.indexOf("=") + 1, temp.indexOf(";")); } return value; } /** * 从Header中提取Cookie */ public static String getCookies(Map<String, List<String>> headerFields) { String cookies = ""; List<String> Set_Cookie = headerFields.get("Set-Cookie"); if (null != Set_Cookie) { for (String string : Set_Cookie) { cookies += string; } } return cookies; } }