Код представляет собой HttpClient или API сервлета для анализа заголовка Cookie.

Существует ли какой-либо существующий код в Apache HttpClient или в API сервлета для анализа заголовка Cookie и получения из строки, содержащей "name1=value1; name2=value2;..." список Cookie? Написание кода для анализа этого не кажется слишком сложным, но если уже есть какой-то существующий код, я бы хотел его использовать.


person avernet    schedule 14.12.2008    source источник


Ответы (1)


Если вы вызываете getCookies() для объекта HttpServletRequest он вернет массив из Cookie объектов. Если вам нужно часто искать файлы cookie по имени, может быть проще поместить их на карту, чтобы их было легко искать (вместо того, чтобы каждый раз перебирать массив). Что-то вроде этого:

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, а не сервлеты, вы можете получить массив Cookie, используя:

client.getState().getCookies()

где client — ваш объект HttpClient.

person Marc Novakowski    schedule 14.12.2008
comment
Это предполагает, что API-интерфейс сервлета доступен в пути к классам. Vert.x не использует HttpServletRequest. - person Robert Christian; 07.03.2014