3
我正在用Java编写一些软件。如何使用Java访问/保存Cookie
我正在测试cookie管理功能,但我似乎无法使cookie工作。我写了一个快速的PHP来删除一个cookie,然后在我的浏览器中测试了这个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://www.google.co.uk”进行了测试。您认为这对locahost无效的任何特定原因? Cookie接受政策? – anomalousmaterials 2011-05-26 01:45:11
我没有看到您所看到的 - 当我使用www.google.com试用您的代码时,它不会显示任何Cookie。如果我重新订购代码(阅读内容,然后检查cookies),它会显示一个cookie。 – 2011-05-26 03:31:49
你如何处理标题?我修改了一下代码: 'code: URLConnection connection = url.openConnection(); connection.setDoInput(true); BufferedReader bin = new BufferedReader(new InputStreamReader(connection.getInputStream())); 弦线;' 它似乎工作:输出可以在这里找到:http://imageshack.us/photo/my-images/33/outputx.png/。 Google.com会丢弃几个cookie?除非这不是cookies的真实输出? – anomalousmaterials 2011-05-26 16:35:24