0

我想从 Java 应用程序获取从 Web 浏览器发送的 cookie 值。

cookie 不会在来自 WebServer 的响应标头中发送。我认为 cookie 是作为会话 cookie 发送的——我无法在 Java 应用程序中获取 cookie 值。

我试过这个:

             CookieHandler handler = CookieHandler.getDefault();
             if (handler != null)    {
                  Map<String, List<String>> headers = handler.get(url.toURI(), new HashMap<String, List<String>>());
                  List<String> values = headers.get("Cookie");
                  for (Iterator<String> iter=values.iterator(); iter.hasNext();) {
                       String v = iter.next(); 

                       if (cookieValue == null) 
                            cookieValue = v; 
                       else
                            cookieValue = cookieValue + ";" + v; 
                  } 
             }

但我的努力是徒劳的,我无法得到饼干。我尝试简单地在浏览器中输入 URL,我可以在浏览器中看到“Cookie”,但我无法从 java 程序中获取相同的 cookie - 任何帮助都会有很大帮助


谢谢BalusC,我会解释这个问题。

我实际上是在寻找来自 Google Analytics 的 Cookie,而 Cookie 的格式为“__gads:ID=blah”。

此 Cookie 仅第一次发送给客户,如果它已经存在 - Google Analytics 不会再次发送 Cookie(这些天我都在检查此 Cookie)

现在我的问题是在哪里可以找到这个 Cookie,它应该已经存在于我的系统中。有什么想法吗?

4

1 回答 1

3

这行不通。这java.net.CookieHandler与特定于网络浏览器的 cookie 存储完全无关。CookieHandler仅在用于使用java.net.URLConnectionJava 语言以编程方式触发 HTTP 请求时使用(另请参阅此迷你教程

如果您打算访问特定于 webbrowser 的 cookie 存储,那么您必须使用他们的 Java API(如果由特定 webbrowser make 提供的话),或者在磁盘文件系统和/或在磁盘文件系统中查看/猜测它们的位置特定于平台的注册表,取决于网络浏览器的品牌/版本和使用的平台。

于 2012-07-04T18:51:41.633 回答