2008-12-14 3 views
2

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

ответ

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() 

где клиент ваш HttpClient объект.

+0

Предполагается, что API-интерфейс Servlet доступен по пути к классам. Vert.x не использует HttpServletRequest. – 2014-03-07 16:51:06