Sto cercando di scaricare il file xls per un sito Web. Quando clicco sul link per scaricare il file, ottengo una casella di conferma javascript. Lo gestisco come sottoScarica file utilizzando HtmlUnit
ConfirmHandler okHandler = new ConfirmHandler(){
public boolean handleConfirm(Page page, String message) {
return true;
}
};
webClient.setConfirmHandler(okHandler);
C'è un collegamento per scaricare il file.
<a href="./my_file.php?mode=xls&w=d2hlcmUgc2VsbElkPSd3b3JsZGNvbScgYW5kIHN0YXR1cz0nV0FJVERFTEknIGFuZCBkYXRlIDw9IC0xMzQ4MTUzMjAwICBhbmQgZGF0ZSA%2BPSAtMTM1MDgzMTU5OSA%3D" target="actionFrame" onclick="return confirm('Do you want do download XLS file?')"><u>Download</u></a>
clicco sul collegamento con il metodo
HTMLPage x = webClient.getPage("http://working.com/download");
HtmlAnchor anchor = (HtmlAnchor) x.getFirstByXPath("//a[@target='actionFrame']");
anchor.click();
handeConfirm() è excuted. Ma non ho idea di come salvare il flusso di file dal server. Ho provato a vedere il flusso con il codice qui sotto.
anchor.click().getWebResponse().getContentAsString();
Ma il risultato è lo stesso della pagina x. Qualcuno sa come catturare il flusso dal server? Grazie.
'anchor.click()' restituirà una pagina. Questo dovrebbe contian il tuo file XLS – Lee
vedere la mia risposta a una domanda simile a http://stackoverflow.com/a/28471835/612123 – culmat