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