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