gpt4 book ai didi

使用 HtmlUnit 下载文件

转载 作者:行者123 更新时间:2023-12-04 01:40:05 27 4
gpt4 key购买 nike

我正在尝试为网站下载 xls 文件。当我单击链接下载文件时,我收到一个 javascript 确认框。我像下面这样处理

    ConfirmHandler okHandler = new ConfirmHandler(){
public boolean handleConfirm(Page page, String message) {
return true;
}
};
webClient.setConfirmHandler(okHandler);

有下载文件的链接。
<a href="./my_file.php?mode=xls&amp;w=d2hlcmUgc2VsbElkPSd3b3JsZGNvbScgYW5kIHN0YXR1cz0nV0FJVERFTEknIGFuZCBkYXRlIDw9IC0xMzQ4MTUzMjAwICBhbmQgZGF0ZSA%2BPSAtMTM1MDgzMTU5OSA%3D" target="actionFrame" onclick="return confirm('Do you want do download XLS file?')"><u>Download</u></a>

我点击链接使用
HTMLPage x = webClient.getPage("http://working.com/download");
HtmlAnchor anchor = (HtmlAnchor) x.getFirstByXPath("//a[@target='actionFrame']");
anchor.click();

handeConfirm() 方法被执行。但我不知道如何从服务器保存文件流。我试图用下面的代码查看流。
anchor.click().getWebResponse().getContentAsString();

但是,结果与页面 x 相同。有人知道如何从服务器捕获流吗?谢谢。

最佳答案

我找到了一种使用 WebWindowListener 获取 InputStream 的方法。在 webWindowContentChanged(WebWindowEvent event) 里面,我把代码放在下面。

InputStream xls = event.getWebWindow().getEnclosedPage().getWebResponse().getContentAsStream();

得到 xls 后,我可以将文件保存到我的硬盘中。

关于使用 HtmlUnit 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12997871/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com