2

現在、Java デスクトップ アプリケーションから特定の Cookie を読み取ろうとしています。Chrome 拡張機能を使用して Cookie を作成し、Chrome コンソールを使用して、それが作成され、正しい値を持っていることを確認できます。

Java アプリケーションから読み取ろうとすると問題が発生します。現在のコードは 3 つの一見ランダムな Cookie を取得しますが、これが含まれていれば問題にはなりません。Cookie がホストのみではなく、安全でないことを確認しました。実際には、他の 3 つの Cookie と同じプロパティを持っていますが、返されません。

これが私の現在のコードです:

Java アプリケーション コード:

import java.io.IOException;
import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.CookiePolicy;
import java.net.CookieStore;
import java.net.URL;
import java.net.URLConnection;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Spud
 */
public class Reading_My_Created_Cookie
{

    /**
     * @param args the command line arguments
     */

    private static final String SEARCH_TERM = "Tab";
    private static final String ADDRESS = "http://www.youtube.com/";
    private static final CookieManager COOKIEMANAGER = new CookieManager();
    private static Object myCookie;

    public static void main(String[] args)
    {
        try
        {
            COOKIEMANAGER.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
            CookieHandler.setDefault(COOKIEMANAGER);
            URL url = new URL(ADDRESS);
            URLConnection connection = url.openConnection();
            connection.getContent();
            CookieStore cookieStore = COOKIEMANAGER.getCookieStore();
            Object[] cookieJar = cookieStore.getCookies().toArray();
            for (int i = 0; i < cookieJar.length; ++i)
            {
                System.out.println(cookieJar[i]);
            }
            //myCookie = checkForCookie(cookieJar);
            //System.out.println(myCookie);
        }
        catch (IOException ex)
        {
            Logger.getLogger(Reading_My_Created_Cookie.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    private static Object checkForCookie(Object[] cookieJar)
    {
        for (int i = 0; i < cookieJar.length; ++i)
        {
            if (cookieJar[i].equals(SEARCH_TERM))
            {
                return cookieJar[i];
            }
        }
        return "Cookie not found";
    }
}

これは現在、次を出力します。

run:
YSC=6EIDrzvf02s
PREF=f1=50000000
VISITOR_INFO1_LIVE=qKCoNVZQMi8
BUILD SUCCESSFUL (total time: 4 seconds)

それを望む人のために、これは私の現在の拡張 JavaScript コードです:

chrome.browserAction.onClicked.addListener(run);

function run()
{
    var cookieName, cookieValue, cookieURL;

    cookieName = "Tab";
    chrome.tabs.getSelected(null, function(tab)
    {
        cookieValue = tab.title;
        cookieURL = tab.url;
        createCookie(cookieName, cookieValue, cookieURL);
    });
}

function createCookie(cookieName, cookieValue, cookieURL)
{
    chrome.cookies.set({name: cookieName, value: cookieValue, domain: ".youtube.com", url: cookieURL});
    alert("cookieName = " + cookieName + " cookieValue/tabTitle = " + cookieValue + " tabURL = " + cookieURL);
}

お時間をいただきありがとうございます。これは現在、私の A レベルのコンピューティング プロジェクトの重要な部分であるため、これを整理できることを本当に願っています。

4

0 に答える 0