3

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

4

1 回答 1

2

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

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 对象。

于 2008-12-14T07:11:48.413 回答