亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在隱身模式下執行 URLConnection 請求

如何在隱身模式下執行 URLConnection 請求

嚕嚕噠 2022-10-20 17:35:41
我有以下課程:public class GetHtmlContent {    public static String GetHtml(){        String content = null;        URLConnection connection = null;        try {            connection =  new URL("https://www.tomshardware.com/").openConnection();            Scanner scanner = new Scanner(connection.getInputStream());            scanner.useDelimiter("\\Z");            content = scanner.next();        }catch ( Exception ex ) {            ex.printStackTrace();        }        return content;    }}我該怎么做才能讓每個請求都被視為NEW,就像我在 Chrome 的隱身模式下一樣注意:該站點只是一個示例
查看完整描述

4 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

如果沒有任何特定的附加設置,您的代碼不應傳輸 cookie。

最好使用 HTTPS 代理進行測試。因此,如果您的代碼如下所示:

public static void main(String[] args) {
    GetHtml();
    GetHtml();
    GetHtml();}

您可以在所有三個調用中看到沒有傳輸 cookie。

http://img1.sycdn.imooc.com//6351168b00019cb606520171.jpg

添加 CookieHandler


如果您要添加這樣的 cookie 處理程序:


public static void main(String[] args) {


    CookieManager cookieManager = new CookieManager();

    CookieHandler.setDefault(cookieManager);


    GetHtml();

    GetHtml();

    GetHtml();

}

那么情況就不同了。只有在第一次調用中沒有 cookie,在第一次調用之后,進一步的調用正在傳輸 cookie。

http://img1.sycdn.imooc.com//6351169c0001954306450215.jpg

推薦

因此建議設置一個代理來查看您的程序正在傳輸的實際數據。


查看完整回答
反對 回復 2022-10-20
?
慕森王

TA貢獻1777條經驗 獲得超3個贊

首先,重要的是要了解 Chrome 的隱身模式是如何 工作的:

  • Chrome 不會保存您的:瀏覽歷史記錄、cookie 和網站數據,或在表單中輸入的信息。

  • 您下載的文件和您創建的書簽將被保留。

  • 您訪問的網站、您的雇主或學?;蚰幕ヂ摼W服務提供商*不會隱藏您的活動*。

URLConnection,一般來說,不會:

  • 保存瀏覽歷史

  • 保存 cookie 和站點數據(您可以使用CookieManager保存 cookie )

  • 保存表格中輸入的信息

默認情況下,它也不保存或下載文件。書簽在這里也不相關。

此外,重要的是要了解隱身模式與 VPN 不同——您的 ISP、您瀏覽的站點等都可以看到您計算機的 IP 地址、瀏覽器的代理字符串等。

所以從網絡的角度來看,請求的“新鮮感”更像是一種幻覺。但是,在隱身模式下,本地不會保留有關您的瀏覽會話的任何內容,因此,如果您在公共機器上登錄到您的銀行帳戶(恕我直言,您永遠不應該這樣做),使用隱身模式會更安全,因為只要您關閉隱身窗口,您的所有會話信息都將被清除,并且該公共機器的其他用戶無法訪問它。

因此,簡而言之,在使用URLConnection. 事實上,反之亦然:您需要編寫額外的代碼來讓 Java 程序記住它迄今為止訪問過的鏈接或保留 cookie 等。


查看完整回答
反對 回復 2022-10-20
?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

Chrome 和 Chrome 隱身模式之間的唯一區別是它不共享 cookie 和其他存儲機制。處于隱身模式的 Chrome 也不會保留任何內容,因此一旦 Chrome 關閉,該網站可能試圖存儲在您的瀏覽器中的任何內容都將丟失。

換句話說,當您創建新連接并且不發送任何以前的 cookie 時,它類似于隱身模式。請注意,只要保持連接,就可以發送 cookie。

我不確定您的意圖是什么,但請注意,網站可以有其他方法來檢測重復連接,例如 IP、用戶代理版本(如果提供)、操作系統(如果提供)等。


查看完整回答
反對 回復 2022-10-20
?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

嘗試將緩存設置為 false。

connection.setUseCaches(false);


查看完整回答
反對 回復 2022-10-20
  • 4 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號