我有以下课程:

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;
    }
}


我该如何处理,以使每个请求都被视为新请求,就像我在Chrome的隐身模式下一样

注意:该站点仅是示例

最佳答案

没有任何特定的附加设置,您的代码就不应传输Cookie。

最好使用HTTPS代理进行测试。因此,如果您的代码如下所示:

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


您会在所有三个呼叫中看到没有转移Cookie。

java - 如何执行隐身模式下的URLConnection请求-LMLPHP

添加CookieHandler

如果要添加这样的Cookie处理程序:

public static void main(String[] args) {

    CookieManager cookieManager = new CookieManager();
    CookieHandler.setDefault(cookieManager);

    GetHtml();
    GetHtml();
    GetHtml();
}


那么情况就不同了。仅在第一个呼叫中没有cookie,在第一个呼叫之后,其他呼叫将转移cookie。

java - 如何执行隐身模式下的URLConnection请求-LMLPHP

建议

因此,建议设置代理以查看程序正在传输的实际数据。

关于java - 如何执行隐身模式下的URLConnection请求,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55844382/

10-11 22:20
查看更多