某些PDF文件未正确下载

时间:2019-02-05 05:29:57

标签: java html pdf

我对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>

2 个答案:

答案 0 :(得分:1)

该网站实施了一项检查,以确保我使用的是浏览器。我从chrome复制了用户代理,并允许我下载PDF。

答案 1 :(得分:0)

您要提取的URL不指向PDF文件。它指向一个嵌入PDF文件的HTML文件。您可能需要仔细查看什么是PDF文件的URL。您的代码看起来还不错。

只需在URL上进行cURL即可查看。它很可能会返回HTML文件。