나는 다음과 같은 코드가 있습니다 : 주어진 URL에서 이미지를 반환하도록되어ImageIO.read()가 403 오류를 반환
public BufferedImage urlToImage(String imageUrl) throws MalformedURLException, IOException {
URL url = new URL(imageUrl);
BufferedImage image = ImageIO.read(url);
return image;
}
.
I이 두 임의로 선택된 URL이 테스트:
- https://www.google.co.ma/images/srpr/logo4w.png
- http://www.earthtimes.org/newsimage/osteoderms-storing-minerals-helped-huge-dinosaurs-survive_3011.jpg
첫번째는 잘 작동하지만, 제 403 오류 준다 :
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: http://www.earthtimes.org/newsimage/osteoderms-storing-minerals-helped-huge-dinosaurs-survive_3011.jpg
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1436)
at java.net.URL.openStream(URL.java:1010)
at javax.imageio.ImageIO.read(ImageIO.java:1367)
을
오류의 원인은 무엇입니까? 감사.
대단히 감사합니다. 부차적 인 질문 : 서버가 비표준 UA를 사용하여 콘텐츠가 표준 사용 범위를 벗어나 사용되는 것을 방지하고 싶지 않다는 뜻입니까? 또는 단순히 서버가 기본 동작으로 설정 되었기 때문입니까? –
실제로 대부분의 서버 구현은 기본적으로 UA를 블랙리스트에 올리지 않습니다. 아마도이 특정 웹 사이트의 관리자는 Java 에이전트를 금지하는 방향으로 나아 갔을 것입니다. – Perception
저작권 문제가 걱정됩니다. 따라서 관리자가 Java 에이전트를 블랙리스트에 추가하면 이미지가 브라우저 외부에서 사용될 수 없음을 의미 할 수 있습니다. (내 앱에서 사용자는 프로필 이미지로 URL을 제공 할 수 있으며 URL을 사용할 수없는 경우 이미지를 저장합니다. 프로필 이미지는 더 이상 사용할 수 없습니다. 나는 사용자가 이미지를 사용하지 못하게하거나 저작권 침해 가능성에 대해 경고해야하는지 여부를 확신하지 못한다. –