我正在用java编写一些软件。
我正在测试cookie管理功能,但似乎无法让cookie正常工作。我写了一个快速的php删除一个cookie,我在我的浏览器中测试了它,cookie删除得很好。
但是,请查看以下代码:

    CookieManager cManager = new CookieManager();
    CookieHandler.setDefault(cManager);
    try
    {

        URL url = new URL("http://localhost/_techfactory/apage.php");
        URLConnection connection = url.openConnection();
        CookieStore cookieJar = cManager.getCookieStore();
        List<HttpCookie> cookies = cookieJar.getCookies();
        for ( HttpCookie cookie : cookies)
        {
            System.out.print(cookie);
        }
        Boolean isittrue = cookies.isEmpty();
        System.out.print(isittrue);
        BufferedReader bin = new BufferedReader ( new InputStreamReader(connection.getInputStream()));
        String line;
        while ( ( line = bin.readLine()) != null )
        System.out.print(line);

    }
    catch ( Exception e )
    {
        System.out.println(e);
    }

这虽然语法正确,但除了页面中的html之外,不输出任何内容。现在,不管怎么说,cookiemanager实现是cookiehandler、cookiepolicy和cookiestore的具体实现。然而,它只是拒绝为我工作,我做错了什么?

最佳答案

您需要在检查cookie存储之前读取http头字段,并且调用openConnection()不会读取http头。请参阅the javadoc的前几行。
如果在处理过程中需要cookie,调用getInputStream()将连接并解析头字段,urlconnection中的其他一些方法也是如此。

关于java - 如何使用Java访问/保存Cookie,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6127455/

10-09 01:26