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 не предоставляет их своей библиотеке.

Другие вопросы по тегам