List icon 目录

从 7.17 到 7.18

Cookies

v7.17

当您删除一个 Cookie 时,CookieStore.delete(Cookie) 方法会返回一个 boolean 值,用于指示给定的 Cookie 是否已被成功删除。

if (!cookieStore.delete(cookie)) {
    // 错误:cookie 未被删除。
}
if (!cookieStore.delete(cookie)) {
    // 错误:cookie 未被删除。
}

v7.18

在此版本中,我们简化了这一功能。现在,CookieStore.delete(Cookie) 方法返回 void。如果 Cookie 未被删除,因为它无效或不存在,该方法将不执行任何操作:

cookieStore.delete(cookie);
cookieStore.delete(cookie)

v7.17

要设置一个 Cookie,您可以使用 CookieStore.put(String url, Cookie cookie) 方法。该方法需要两个参数:Cookie 和 URL。如果给定的 URL 和 Cookie 的域名不同,Cookie 将不会被设置,并且该方法会返回 false。因此,请确保给定的 URL 和 Cookie 的域名是相同的。

Cookie cookie = Cookie.newBuilder()
        .name("cookieName")
        .value("cookieValue")
        .domain(".google.com")
        .secure(true)
        .path("/")
        .build();
if (!cookieStore.put("https://www.google.com", cookie)) {
    // 错误:cookie 未被设置。
}
Cookie cookie = Cookie.newBuilder()
        .name("cookieName")
        .value("cookieValue")
        .domain(".google.com")
        .secure(true)
        .path("/")
        .build()
if (!cookieStore.put("https://www.google.com", cookie)) {
    // 错误:cookie 未被设置。
}

v7.18

我们发现 Chromium 仅使用 URL 参数来验证给定的 Cookie 并检查其域名。我们决定简化这个 API。现在,您不需要传递 URL 参数,并确保 URL 和 Cookie 的域名相同。现在,您可以通过以下方式设置 Cookie:

cookieStore.set(Cookie.newBuilder(".google.com")
        .name("cookieName")
        .value("cookieValue")
        .secure(true)
        .path("/")
        .build());
cookieStore.set(Cookie.newBuilder(".google.com")
        .name("cookieName")
        .value("cookieValue")
        .secure(true)
        .path("/")
        .build())

如果给定的 cookie 无效且无法设置,该方法将抛出 java.lang.IllegalArgumentException 异常。

Go top