De 7.17 para 7.18
Cookies
Apagar os cookies
v7.17
Quando se apaga um cookie, o método CookieStore.delete(Cookie)
devolve um valor boolean
indicando se o cookie em causa foi excluído ou não.
if (!cookieStore.delete(cookie)) {
// Erro: O cookie não foi excluído.
}
if (!cookieStore.delete(cookie)) {
// Erro: O cookie não foi excluído.
}
v7.18
Nesta versão, simplificamos esta funcionalidade. Agora, o método CookieStore.delete(Cookie)
retorna void
. Se o cookie não tiver sido excluído porque é inválido ou não existe,
o método não faz nada:
cookieStore.delete(cookie);
cookieStore.delete(cookie)
Definição de cookie
v7.17
Para definir um cookie, é utilizado o método CookieStore.put(String url, Cookie cookie)
. Este método
requer dois parâmetros: o cookie e o URL. Se o URL fornecido e o domínio do cookie forem diferentes,
o cookie não será definido e o método devolve false
. Por isso, certifique-se de que o URL fornecido e
o domínio do cookie são os mesmos domínios.
Cookie cookie = Cookie.newBuilder()
.name("cookieName")
.value("cookieValue")
.domain(".google.com")
.secure(true)
.path("/")
.build();
if (!cookieStore.put("https://www.google.com", cookie)) {
// Erro: O cookie não foi definido.
}
Cookie cookie = Cookie.newBuilder()
.name("cookieName")
.value("cookieValue")
.domain(".google.com")
.secure(true)
.path("/")
.build()
if (!cookieStore.put("https://www.google.com", cookie)) {
// Erro: O cookie não foi definido.
}
v7.18
Descobrimos que o parâmetro URL é utilizado pelo Chromium apenas para validar o cookie fornecido e verificar o seu domínio. Decidimos simplificar esta API. Agora, você não precisa de passar o parâmetro URL e certificar-se de que o URL e o domínio do cookie são os mesmos. Agora, você pode definir um cookie utilizando a seguinte forma:
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())
Se o cookie
fornecido for inválido e não puder ser definido, o método lança java.lang.IllegalArgumentException
.