URL.openStream()和HttpResponse.getEntity()。getContent()下载Inputstream的不同文件

问题描述 投票:0回答:1

在java.net包中使用URL类。

方法1

        String sourceUrl = "https://thumbor.thedailymeal.com/P09kUdGYdBReFSJne1qjVDIphDM=//https://videodam-assets.thedailymeal.com/filestore/5/3/0/2_37ec80e4c368169/5302scr_43fcce37a98877f.jpg%3Fv=2020-03-16+21%3A06%3A42&version=0";
        java.net.URL url = new URL(sourceUrl);
        InputStream inputStream = url.openStream();
        Files.copy(inputStream, Paths.get("/Users/test/rr.png"), StandardCopyOption.REPLACE_EXISTING);

使用Apache的HttpClient类。

方法2

        String sourceUrl = "https://thumbor.thedailymeal.com/P09kUdGYdBReFSJne1qjVDIphDM=//https://videodam-assets.thedailymeal.com/filestore/5/3/0/2_37ec80e4c368169/5302scr_43fcce37a98877f.jpg%3Fv=2020-03-16+21%3A06%3A42&version=0";
        CloseableHttpClient httpclient = HttpClients.createDefault();
        HttpGet httpget = new HttpGet(sourceUrl);
        HttpResponse httpresponse = httpclient.execute(httpget);
        InputStream inputStream = httpresponse.getEntity().getContent();
        Files.copy(inputStream, Paths.get("/Users/test/rr.png"), StandardCopyOption.REPLACE_EXISTING);

我已经使用两种方法下载了rr.png文件。我发现两个文件即使大小也不同,并使用方法2下载空白图像。我已经阅读了两种方法,但是我不明白为什么method1下载正确的文件和method2下载错误的文件。请说明这一点,并让我知道方法2中是否有修复程序,通过该修复程序可以下载正确的文件。

java http httpclient inputstream apache-httpclient-4.x
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.