4 回答

TA貢獻2019條經驗 獲得超9個贊
如果沒有任何特定的附加設置,您的代碼不應傳輸 cookie。
最好使用 HTTPS 代理進行測試。因此,如果您的代碼如下所示:
public static void main(String[] args) { GetHtml(); GetHtml(); GetHtml();}
您可以在所有三個調用中看到沒有傳輸 cookie。
添加 CookieHandler
如果您要添加這樣的 cookie 處理程序:
public static void main(String[] args) {
CookieManager cookieManager = new CookieManager();
CookieHandler.setDefault(cookieManager);
GetHtml();
GetHtml();
GetHtml();
}
那么情況就不同了。只有在第一次調用中沒有 cookie,在第一次調用之后,進一步的調用正在傳輸 cookie。
推薦
因此建議設置一個代理來查看您的程序正在傳輸的實際數據。

TA貢獻1777條經驗 獲得超3個贊
首先,重要的是要了解 Chrome 的隱身模式是如何 工作的:
Chrome 不會保存您的:瀏覽歷史記錄、cookie 和網站數據,或在表單中輸入的信息。
您下載的文件和您創建的書簽將被保留。
您訪問的網站、您的雇主或學?;蚰幕ヂ摼W服務提供商*不會隱藏您的活動*。
A URLConnection
,一般來說,不會:
保存瀏覽歷史
保存 cookie 和站點數據(您可以使用CookieManager保存 cookie )
保存表格中輸入的信息
默認情況下,它也不保存或下載文件。書簽在這里也不相關。
此外,重要的是要了解隱身模式與 VPN 不同——您的 ISP、您瀏覽的站點等都可以看到您計算機的 IP 地址、瀏覽器的代理字符串等。
所以從網絡的角度來看,請求的“新鮮感”更像是一種幻覺。但是,在隱身模式下,本地不會保留有關您的瀏覽會話的任何內容,因此,如果您在公共機器上登錄到您的銀行帳戶(恕我直言,您永遠不應該這樣做),使用隱身模式會更安全,因為只要您關閉隱身窗口,您的所有會話信息都將被清除,并且該公共機器的其他用戶無法訪問它。
因此,簡而言之,在使用URLConnection
. 事實上,反之亦然:您需要編寫額外的代碼來讓 Java 程序記住它迄今為止訪問過的鏈接或保留 cookie 等。

TA貢獻1802條經驗 獲得超4個贊
Chrome 和 Chrome 隱身模式之間的唯一區別是它不共享 cookie 和其他存儲機制。處于隱身模式的 Chrome 也不會保留任何內容,因此一旦 Chrome 關閉,該網站可能試圖存儲在您的瀏覽器中的任何內容都將丟失。
換句話說,當您創建新連接并且不發送任何以前的 cookie 時,它類似于隱身模式。請注意,只要保持連接,就可以發送 cookie。
我不確定您的意圖是什么,但請注意,網站可以有其他方法來檢測重復連接,例如 IP、用戶代理版本(如果提供)、操作系統(如果提供)等。
添加回答
舉報