FileUtils.copyUrlToFile无法正常工作

时间:2014-07-30 08:10:08

标签: java apache-commons-io

我有一个相当基本的问题,我试图使用java从这个URL下载PDF:

http://kundservice.svd.se/ui/templates/HttpHandler/PDFTidningen/PDFTidningen.ashx?date=2014-07-27&file=SVD_D_BILAGA_2014-07-27.pdf&mac=92267fcd3c75feff13154ba66870a523&free=True

这是我的代码"非常基本":

public class Main {

private static final String PATH = "C:\\project\\DownloadTest\\src\\main\\resources\\tmp\\";
private static final String FILENAME = "data.pdf";
private static final String SvDPDFURL = "http://kundservice.svd.se/ui/templates/HttpHandler/PDFTidningen/PDFTidningen.ashx?date=2014-07-27&file=SVD_D_BILAGA_2014-07-27.pdf&mac=92267fcd3c75feff13154ba66870a523&free=True";

public static void main(String[] args) throws Exception{
    File file = new File(PATH + FILENAME);
    URL url = new URL(SvDPDFURL);
    FileUtils.copyURLToFile(url, file);
 }
}

问题是文件是空的,我做错了什么。

1 个答案:

答案 0 :(得分:2)

只需将其设为https而不是http

https://kundservice.svd.se/ui/templates/HttpHandler/PDFTidningen/PDFTidningen.ashx?date=2014-07-27&file=SVD_D_BILAGA_2014-07-27.pdf&mac=92267fcd3c75feff13154ba66870a523&free=True

这种情况正在发生,因为当您点击网址时会有重定向。它重定向到https。浏览器获得响应,响应代码为302,然后重定向到给定的URL,但FileUtility无法处理。

要点击firebug确认使用chrome developers toolF12,请转到Network标签。