我想从最初显示某些html的网址下载文件,然后在2-3秒后显示下载对话框。显然,如果我这样做:
try {
URL url = new URL("http://my.url");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestProperty("Connection", "Keep-Alive");
con.setRequestProperty("Content-Length",
Integer.toString(Integer.MAX_VALUE));
con.setReadTimeout(Integer.MAX_VALUE);
con.setConnectTimeout(Integer.MAX_VALUE);
con.connect();
bis = new BufferedInputStream(con.getInputStream(), 4096);
byteArray = IOUtils.toByteArray(bis);
FileUtils.writeByteArrayToFile(new File("myFile"), byteArray);
} catch (Exception e) {
}
我将保存显示的.html而不是保存对话框中显示的文件。 我应该如何更改代码才能执行此操作?
答案 0 :(得分:1)
我猜这个对话框只有一些javascript,等待几秒钟,然后请求在对话框中嵌入文件下载。
如果是这种情况,如果你弄清楚'真正的下载'包含在中,您可以使用JSoup或任何其他html解析器库来抓取页面外的链接。
如果动态生成下载链接,您显然只需要这样做。
在做了rossa建议之后,我建议在对话框窗口中设置javascript断点,以确定真实URL的确切要求。
答案 1 :(得分:0)
您确定网址是您要下载的文件的确切位置吗?我的意思是,是否有任何重定向 - 您可以检查您的浏览器并使用HTTP标头扩展来检查幕后发生的事情。