java - 使用适用于 Java 的 Google HTTP 客户端库设置 Cookie

标签 java google-api google-http-client

我刚刚开始使用 Google HTTP Client Library for Java我非常喜欢它。但是,我不知道是否有一种简单的方法来处理服务器发送 header 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 header 发送它们。有很多通过互联网处理 cookie 的解决方案,但奇怪的是 Google 没有在其库中提供这些解决方案。

关于java - 使用适用于 Java 的 Google HTTP 客户端库设置 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29836091/

相关文章:

javascript - 如何在 angularjs 中发送多个文件以及表单数据

java - 无法隐藏标题栏

java - Tomcat异常在响应提交后无法调用sendError()?

javascript - 有没有办法测试谷歌数据源?不知道如何处理这些错误

java - sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 通过 Selenium 和 Java 使用 findElement(By.className())

android - 使用 Firebase 身份验证时 token 服务 API 中的错误请求

google-maps - Youtube地理位置信息,获取 map 视频

android - 使用 robospice google http 客户端在 Post 中发送 JSON

java - 如何使用 "get"方法编写 HttpRequest

java - Google HTTP Java 客户端的 POST 请求错误