代码是HttpClient或servlet API来解析Cookie头

时间:2008-12-14 05:54:25

标签: http header cookies httpclient

Apache HttpClient或servlet API中是否存在任何现有代码来解析Cookie标头并从包含“name1 = value1; name2 = value2; ...”的字符串中获取Cookie的列表?编写代码来解析这个似乎并不太难,但是如果已经存在一些代码,我想使用它。

1 个答案:

答案 0 :(得分:2)

如果您在HttpServletRequest对象上调用getCookies(),它将返回Cookie个对象的数组。如果您需要经常按名称查找cookie,那么将它们放入Map可能更容易,因此很容易查找它们(而不是每次都在迭代数组)。像这样:

public static Map<String,Cookie> getCookieMap(HttpServletRequest request) {
    Cookie[] cookies = request.getCookies();
    HashMap<String,Cookie> cookieMap = new HashMap<String,Cookie>();
    if (cookies != null) {
        for (Cookie cookie : cookies) {
            cookieMap.put(cookie.getName(), cookie);
        }
    }
    return cookieMap;
}

如果您使用的是HttpClient而不是servlet,则可以使用以下命令获取Cookie数组:

client.getState().getCookies()

其中client是您的HttpClient对象。