0

Webブラウザから送信されたCookieの値をJavaアプリケーションから取得したい。

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 アナリティクスは Cookie を再送信しません (最近は常にこの Cookie をチェックしています)。

私の質問は、システムに既に存在しているはずのこの Cookie をどこで見つけることができるかということです。何かご意見は?

4

1 に答える 1

3

これはうまくいきません。はjava.net.CookieHandler、Web ブラウザ固有の Cookie ストアとはまったく関係ありません。は、Java 言語を使用してプログラムで HTTP リクエストを起動するために使用さCookieHandlerれた場合にのみ使用されます (このミニ チュートリアルも参照してください) 。java.net.URLConnection

Web ブラウザー固有の Cookie ストアにアクセスする場合は、Java API (特定の Web ブラウザーの make によって提供されている場合) を使用するか、ディスク ファイル システムおよび/またはプラットフォーム固有のレジストリ。Web ブラウザのメーカー/バージョンおよび使用するプラットフォームに応じて異なります。

于 2012-07-04T18:51:41.633 に答える