从 7.17 到 7.18
Cookies
删除 Cookie
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)
设置 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
异常。