【发布时间】:2010-09-26 20:14:59
【问题描述】:
Apache HttpClient 或 servlet API 中是否有任何现有代码来解析 Cookie 标头并从包含“name1=value1;name2=value2;...”的字符串中获取 Cookie 列表?编写代码来解析这个似乎并不难,但如果已经有一些现有的代码,我想使用它。
【问题讨论】:
标签: http header cookies httpclient
Apache HttpClient 或 servlet API 中是否有任何现有代码来解析 Cookie 标头并从包含“name1=value1;name2=value2;...”的字符串中获取 Cookie 列表?编写代码来解析这个似乎并不难,但如果已经有一些现有的代码,我想使用它。
【问题讨论】:
标签: http header cookies httpclient
如果您在HttpServletRequest 对象上调用getCookies(),它将返回一个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 对象。
【讨论】: