【问题标题】:FileUtils.copyUrlToFile is not workingFileUtils.copyUrlToFile 不工作
【发布时间】:2014-09-21 19:06:03
【问题描述】:

我有一个相当基本的问题,我正在尝试使用 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);
 }
}

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

【问题讨论】:

  • 为什么在 URL 的末尾有 HTTP 参数?
  • @ScaryWombat HTTP 参数有什么问题?
  • 我没有说它有什么问题。
  • 您是否尝试过 FileUtils.copyURLToFile(URL, File, int, int) 版本,它允许您指定超时等
  • 无法真正回答为什么有 URL 参数,这不是我的网站(该网站属于瑞典第三大报纸)。 JamesB 你能解释一下超时是如何工作的吗?

标签: java apache-commons-io


【解决方案1】:

只需使用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

这是因为当您点击 url 时有一个重定向。它重定向到https。浏览器收到响应,响应代码为 302,然后重定向到给定的 url,但 FileUtility 无法处理。

要确认使用firebugchrome developers tool,请点击F12 并转到Network 标签。

【讨论】:

  • 我认为您应该将问题标题更改为通用名称,例如 FileUtils.copyUrlToFile 不起作用或文件大小为 0。
猜你喜欢
  • 2014-02-22
  • 1970-01-01
  • 1970-01-01
  • 2016-11-02
  • 1970-01-01
  • 2021-01-10
  • 1970-01-01
  • 2019-01-19
  • 1970-01-01
相关资源
最近更新 更多