我对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>
答案 0 :(得分:1)
该网站实施了一项检查,以确保我使用的是浏览器。我从chrome复制了用户代理,并允许我下载PDF。
答案 1 :(得分:0)
您要提取的URL不指向PDF文件。它指向一个嵌入PDF文件的HTML文件。您可能需要仔细查看什么是PDF文件的URL。您的代码看起来还不错。
只需在URL上进行cURL即可查看。它很可能会返回HTML文件。