2016-11-11 2 views
0

Я хочу загрузить картинку с URL - прямая ссылка на картинку. Это как-то защищен, когда я пытаюсь:JAVA picture загрузить защиту - не могу скачать

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

Я не возражал бы фактическую ссылку на изображение, чтобы попробовать некоторые вещи для того, чтобы ответить на ваш вопрос. Было бы возможно иметь его? Мое первое предположение - проблема с User Agent. – 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. Просто Google их. –

Смежные вопросы