java - 带有Java的Google HTTP客户端库的Set-Cookie

标签 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.
            }
        }
    }
}


有什么库方法可以处理这些问题,而不是由我自己实现?

最佳答案

解析cookie使用

java.net.HttpCookie.parse(String header)


仍然需要存储已解析的cookie并将其与Cookie标头一起发送。尽管有很多Google没有提供其库的奇怪的解决方案,但是Internet上有很多解决Cookie的解决方案。

本文翻译自 https://stackoverflow.com/questions/29836091/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。


相关文章:

java - Java Hibernate Envers为审核表设置其他主键

java - 查找有限位数的最大奇数

java - Sphinx 4糟糕的准确性

ruby - 为什么Google的自定义搜索API会在使用Ruby客户端时说我缺少访问令牌?

node.js - 如何使用0个mime部分错误修复无效的多部分请求

java - 如何使用RoboSpice Google Http Java Client模块和JSON数据上传文件

java - 如何从控制器传递字符串值数组到视图

c# - 如何从Youtube列出用户的历史记录?

java - Apache HTTP客户端和Google HTTP客户端有什么区别? [关闭]