我有一个相当基本的问题,我试图使用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);
}
}
问题是文件是空的,我做错了什么。
答案 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 tool
或F12
,请转到Network
标签。