我有以下课程:
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。
添加CookieHandler
如果要添加这样的Cookie处理程序:
public static void main(String[] args) {
CookieManager cookieManager = new CookieManager();
CookieHandler.setDefault(cookieManager);
GetHtml();
GetHtml();
GetHtml();
}
那么情况就不同了。仅在第一个呼叫中没有cookie,在第一个呼叫之后,其他呼叫将转移cookie。
建议
因此,建议设置代理以查看程序正在传输的实际数据。
关于java - 如何执行隐身模式下的URLConnection请求,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55844382/