如何使用Java从网站上获取所有cookie

问题描述 投票:1回答:1

我想使用Java从网站上获取所有cookie在cookie中有:

  • _ga
  • _gid
  • PHPSESSID

我尝试了此代码,但只给出了PHPSESSID

 CookieManager cookieManager = new CookieManager();
 CookieHandler.setDefault(cookieManager);

 URL url = new URL("https://example.com/");

 URLConnection connection = url.openConnection();
 connection.getContent();

 List<HttpCookie> cookies = cookieManager.getCookieStore().getCookies();
 for (HttpCookie cookie : cookies) {
     System.out.println(cookie.getDomain());
     System.out.println(cookie);
 }

我该如何解决?

java httprequest httpconnection
1个回答
1
投票

上面提供的代码示例正在建立到特定站点(example.com)的URL连接。

因此,对cookieManager的调用将仅产生由特定网站(example.com)设置的cookie。它不会读取其他网站创建的cookie。

为了获取所有cookie,必须更新程序以建立与创建cookie所涉及的所有网站的URL连接。

这是一个有效的示例:

// 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
© www.soinside.com 2019 - 2024. All rights reserved.