【发布时间】:2019-02-05 05:29:57
【问题描述】:
我在 JAVA 方面的经验很少(我的第一个真正的程序工作)一直在寻找解决方案几个小时。我已经编写了一个小程序来从链接下载 PDF 文件。它适用于大多数链接,但其中一些不起作用。
所有有效链接的连接类型显示为 application/pdf,但某些链接出于某种原因显示 text/html 的连接。
我一直在尝试使用我可以在网上找到的任何东西重写代码,但我一直得到相同的结果。
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.net.ConnectException;
import java.net.URL;
import java.net.URLConnection;
public class Main {
public static void main(String[] args) throws Exception {
String link = "https://www.menards.com/main/items/media/UNITE051/SDS/SpectracideVegetationKillerReadyToUse2-228-714-8845-SDS-Feb16.pdf";
String fileName = "File Name.pdf";
URL url1 = new URL(link);
try {
URLConnection urlConn = url1.openConnection();
byte[] buffer = new byte[1024];
double downloaded = 0.00;
int read = 0;
System.out.println(urlConn.getContentType()); // This shows as text/html but it should be PDF
FileOutputStream fos1 = new FileOutputStream(fileName);
BufferedInputStream is1 = new BufferedInputStream(urlConn.getInputStream());
BufferedOutputStream bout = new BufferedOutputStream(fos1, 1024);
try {
while ((read = is1.read(buffer, 0, 1024)) >= 0) {
bout.write(buffer, 0, read);
downloaded += read;
}
bout.close();
fos1.flush();
fos1.close();
is1.close();
} catch (Exception e) {}
} catch (Exception e) {}
}
}
我需要能够从代码中的链接下载 PDF。
这是保存在 PDF 文本文档中的内容:
<html>
<head>
<META NAME="robots" CONTENT="noindex,nofollow">
<script src="/_Incapsula_Resource?SWJIYLWA=5074a744e2e3d891814e9a2dace20bd4,719d34d31c8e3a6e6fffd425f7e032f3">
</script>
<body>
</body></html>
【问题讨论】:
-
我想知道它的文本响应是什么,是否有可能由于某种原因,基于您的 java 用户代理,只有某些链接返回 403?
-
您应该将pdf文件下载为二进制而不是文本
-
不要抓到 NPE 的
-
当我将文件保存为显示为 html 的文本时。