Приведенный выше пример кода устанавливает URL-соединение с указанным c сайтом (example.com).
Поэтому при вызове cookieManager будут получены только файлы cookie, установленные указанным c веб-сайтом (example.com) только. Он не будет считывать код повара ie, созданный другим веб-сайтом.
Чтобы получить все файлы cookie, необходимо обновить программу, чтобы установить URL-соединения со всеми веб-сайтами, участвующими в создании файлов cookie.
Вот рабочий пример:
// File name: GetCookies.java
import java.io.*;
import java.net.*;
public class GetCookies {
public static void showCookies(String websiteURL) throws IOException {
CookieManager cookieManager = new CookieManager();
CookieHandler.setDefault(cookieManager);
// Access the website
URL url = new URL(websiteURL);
URLConnection urlConnection = url.openConnection();
urlConnection.getContent();
// Get CookieStore
CookieStore cookieStore = cookieManager.getCookieStore();
// Get cookies
for (HttpCookie cookie : cookieStore.getCookies()) {
System.out.println("\n Cookie: " + cookie.getName());
System.out.println("\t Domain: " + cookie.getDomain());
System.out.println("\t Value: " + cookie.getValue());
}
}
public static void main(String[] args) throws IOException {
showCookies("https://stackoverflow.com/");
showCookies("https://www.google.com/");
}
}
Выход:
> javac GetCookies.java
> java GetCookies
Cookie: prov
Domain: .stackoverflow.com
Value: ece1201b-b714-98ef-c063-0015fcc6440b
Cookie: NID
Domain: .google.com
Value: 200=Mhc_xgGU-7HFK243aESiUxBhUPOcsJ_eNiLSeQhrfA0
Cookie: 1P_JAR
Domain: .google.com
Value: 2020-03-22-01