Gibt es einen vorhandenen Code in Apache HttpClient oder in der Servlet-API zu parsen Cookie-Header und erhalten aus einer Zeichenfolge, die "name1=value1; name2=value2; ..." eine Liste von Cookie enthält? Schreiben von Code zu parsen dies scheint nicht zu schwer, aber wenn es bereits einige vorhandenen Code, ich möchte es verwenden.
Antwort
Zu viele Anzeigen?Wenn Sie anrufen [getCookies()](http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/http/HttpServletRequest.html#getCookies()) über die HttpServletRequest
Objekt, gibt es ein Array von Cookie
Gegenstände. Wenn Sie häufig Cookies nach Namen suchen müssen, kann es einfacher sein, sie in eine Map zu packen, so dass man sie leicht nachschlagen kann (anstatt jedes Mal über das Array zu iterieren). Etwas wie dies:
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;
}
Wenn Sie HttpClient und keine Servlets verwenden, können Sie die Cookie
Array verwenden:
client.getState().getCookies()
wobei client Ihr HttpClient-Objekt ist.