2016-11-11 104 views
0

我想從網站下載圖片 - 直接鏈接到圖片。 它是某種保護,當我嘗試:JAVA圖片下載保護 - 無法下載

InputStream in = new URL("http://www.somesite.sk/somepicture.jpg") 
Files.copy(in, Paths.get("C:/picture.jpg")); 

它下載,但不能作爲原始圖片,文件「picture.jpg」只有這個文本中:

<head><title>Document Moved</title></head> 
<body><h1>Object Moved</h1>This document may be found <a HREF="http://www.somesite.sk/somepicture.jpg">here</a></body> 

當我嘗試直接下載 - 右鍵點擊和保存圖片,它的工作原理,如果我嘗試一些下載管理器,它的工作原理。 有些想法?

+1

我不會介意的實際鏈接到圖像嘗試一些東西出來,爲了回答你的問題。有可能有一個? 我的第一個猜測是用戶代理問題。 – MadWard

+1

使用另一個httpClient並確保啓用後面的重定向。請參閱此處獲取示例 - http://www.baeldung.com/httpclient-stop-follow-redirect –

+0

MadWard:http://www.temponabytok.sk/Files/obrazky/10010483.jpg – nilrem

回答

0

剛剛測試過它。將這些依賴關係放入您的pom.xml文件中。

<dependency> 
     <groupId>commons-io</groupId> 
     <artifactId>commons-io</artifactId> 
     <version>2.5</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpclient</artifactId> 
     <version>4.3.2</version> 
    </dependency> 

import org.apache.commons.io.FileUtils; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.impl.client.HttpClientBuilder; 
import java.io.File; 

public class ImageDownloader { 
    public static void main(String[] args) {  
     HttpClient instance = HttpClientBuilder.create().build(); 
     HttpGet httpGet = new HttpGet("https://yourhost.blah/yuorfile.jpg"); 
     try { 
      HttpResponse response = instance.execute(httpGet); 
      FileUtils.copyInputStreamToFile(response.getEntity().getContent(), new File("output.jpg"));  
     } catch (Exception e) { 
      e.printStackTrace(); 
     }  
    } 
} 

希望它有助於

+0

如果你能幫我多一點:我在哪裏可以找到pom.xml文件? – nilrem

+0

您可以直接從Apache項目頁面下載jar包。只是谷歌他們。 –