Код - это HttpClient или servlet API для анализа заголовка cookie
-
21-08-2019 - |
Вопрос
Существует ли какой-либо существующий код в Apache HttpClient или в servlet API для анализа заголовка cookie и получения из строки, содержащей "name1=value1;name2=значение2;..." список файлов cookie?Написать код для синтаксического анализа этого не кажется слишком сложным, но если уже есть какой-то существующий код, я бы хотел его использовать.
Решение
Если ты позвонишь 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.