Frage

Gibt es einen vorhandenen Code in Apache Httpclient oder in dem Servlet-API Cookie-Header zu analysieren und aus einer Zeichenfolge zu erhalten, die enthält "name1 = value1; name2 = value2; ..." eine Liste von Cookies? Das Schreiben von Code zu analysieren, dies nicht zu hart scheint, aber wenn es bereits einige vorhandene Code ist, würde Ich mag es zu benutzen.

War es hilfreich?

Lösung

Wenn Sie rufen Sie getCookies () auf dem HttpServletRequest Objekt, wird es ein Array von Cookie Objekten zurück. Wenn Sie häufig Cookies nachschlagen namentlich müssen, dann kann es einfacher sein, sie in eine Karte zu setzen, so dass es einfach ist, sie zu sehen (und nicht iterieren Array jedes Mal). So etwas wie folgt aus:

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 nicht Servlets verwenden, können Sie die Cookie Array erhalten werden:

client.getState().getCookies()

, wo Client ist Httpclient Ihr Objekt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top