Set-Cookie с клиентской библиотекой Google HTTP для Java
Я только начал использовать клиентскую библиотеку Google HTTP для Java, и мне это очень нравится. Однако я не знаю, есть ли простой способ справиться со случаем, когда сервер отправляет заголовок Set-Cookie. Я просмотрел документацию, пример кода и Javadoc и ничего не увидел, поэтому начал внедрять собственное решение. Однако этот процесс кажется достаточно распространенным, и я думаю, что Google разработал бы решение для всех.
Сервер отправляет что-то вроде:
Set-Cookie: uid=ef308bd9-4580-4ef0-8cdd-2b09f383419e; Expires=Tue, 31 Dec 2199 23:59:59 GMT; Domain=mydomain.com; Path=/
Мой клиент должен вручную все это разобрать:
String[] parts = cookie.split(";");
if (parts.length > 0) {
Pattern p = Pattern.compile("([^\\s=]*)=(.*)");
Matcher m = p.matcher(parts[0]);
if (m.matches()) {
Cookie cookie = new Cookie(m.group(1), m.group(2));
if (parts.length > 1) {
for (int i = 1; i < parts.length; i++) {
// parse and set "Expires", "Max-Age", "Domain", "Path",
// "Secure", "HttpOnly", etc.
}
}
}
}
Есть ли какой-нибудь библиотечный метод для обработки этого материала вместо того, чтобы я сам его реализовывал?
1 ответ
Для разбора куки используйте
java.net.HttpCookie.parse(String header)
Еще нужно сохранить проанализированные куки и отправить их с заголовком Cookie. Существует множество решений для обработки файлов cookie через Интернет, хотя странно, что Google не предоставляет их своей библиотеке.