使用Google HTTP Client Library for Java设置Cookie

时间:2015-04-23 23:24:32

标签: java google-api google-http-client

我刚开始使用Google HTTP Client Library for 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 个答案:

答案 0 :(得分:4)

要解析cookie,请使用

restrict

仍然需要存储已解析的Cookie并使用Cookie标头发送它们。有很多解决方案可以通过互联网进行cookie处理,但谷歌没有提供它们的库是很奇怪的。