Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA:如何下载servlet动态创建的网页_Java_Servlets_Download_Fileutils - Fatal编程技术网

JAVA:如何下载servlet动态创建的网页

JAVA:如何下载servlet动态创建的网页,java,servlets,download,fileutils,Java,Servlets,Download,Fileutils,我想从以下URL将网页源下载到文件(*.htm)(即包含所有html标记的完整内容): 它与FileUtils.copyURLtoFile方法配合使用非常好 但是,上述URL也有一些链接,例如我非常感兴趣的链接: 如果用普通浏览器打开这个链接,效果会非常好,但是当我试图用Java通过FileUtils下载它时——我只得到一个没有内容的页面,只有一条消息“trwa ladowanie danych”(意思是:“加载数据…”),但是什么都没有发生,目标页面没有加载 有人能帮我吗?从URL中,我可

我想从以下URL将网页源下载到文件(*.htm)(即包含所有html标记的完整内容):

它与FileUtils.copyURLtoFile方法配合使用非常好

但是,上述URL也有一些链接,例如我非常感兴趣的链接:

如果用普通浏览器打开这个链接,效果会非常好,但是当我试图用Java通过FileUtils下载它时——我只得到一个没有内容的页面,只有一条消息“trwa ladowanie danych”(意思是:“加载数据…”),但是什么都没有发生,目标页面没有加载

有人能帮我吗?从URL中,我可以看到页面使用servlet——是否有特殊的方式下载使用servlet创建的页面


关于--

这不是一个servlet问题——这恰好是用于实现服务器的技术,但通常客户端不需要关心这一点。我强烈怀疑这只是因为服务器根据请求头(例如用户代理)使用不同的数据进行响应。例如,当我使用
curl
获取它时,我看到的响应与在Chrome中加载它时非常不同

我建议您尝试使用
curl
,提出一个看起来尽可能接近浏览器请求的请求,然后进行修改,直到您能够准确地找到所涉及的头。您可能希望使用或使其易于查看所涉及的确切请求/响应


当然,即使您可以正确地获取原始HTML,仍然存在所有的Javascript—HTML完全不包含任何数据是可行的,但它包含Javascript,Javascript会进行实际的数据获取。我不认为这是一个特殊的页面,但你可能会发现它发生在

尝试在主页上使用selenium webdriver时

HtmlUnitDriver driver = new HtmlUnitDriver(true); 
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get(baseUrl);
然后导航到链接

driver.findElement(By.name("name of link")).click();

更新:我检查了以下内容:如果我关闭Firefox中的Cookie,然后尝试加载我的页面:

然后,我产生了错误的结果,就像在我的java应用程序中一样(即,页面上显示“加载数据”消息,而不是正确的内容)


现在,我如何管理java中的Cookie以正确下载此页面?

谢谢Jon的快速回答。威尔钻研卷发:)不,那似乎不起作用。。。奇怪的是,有时使用FileUtils的原始解决方案工作得很好。。。但当我重新运行应用程序时,它会再次得到错误的结果。。。奇怪。