[java] HttpClient를 사용하여 특정 웹 페이지의 이미지를 다운로드하는 방법은?
이미지 다운로드는 HttpClient 라이브러리를 사용하여 간단하게 수행할 수 있습니다. HttpClient는 Apache HttpComponents 프로젝트의 일부입니다. 다음은 HttpClient를 사용하여 특정 웹 페이지에서 이미지를 다운로드하는 예시입니다.
- HttpClient의 의존성 추가 먼저, 프로젝트의 build.gradle 파일에 HttpClient 의존성을 추가해야 합니다.
dependencies {
implementation 'org.apache.httpcomponents:httpclient:4.5.13'
}
- 이미지 다운로드 코드 작성 다음은 HttpClient를 사용하여 특정 URL에서 이미지를 다운로드하는 Java 코드 예시입니다.
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class ImageDownloader {
public static void main(String[] args) {
String imageUrl = "https://example.com/image.jpg"; // 다운로드할 이미지 URL
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
HttpGet httpGet = new HttpGet(imageUrl);
try (CloseableHttpResponse response = httpClient.execute(httpGet)) {
HttpEntity entity = response.getEntity();
if (entity != null) {
try (InputStream inputStream = entity.getContent()) {
// 파일로 저장할 경로와 이름 설정
String savePath = "C:/path/to/save/image.jpg";
saveImage(inputStream, savePath);
System.out.println("이미지 다운로드 완료");
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static void saveImage(InputStream inputStream, String savePath) throws IOException {
try (OutputStream outputStream = new FileOutputStream(savePath)) {
int bytesRead;
byte[] buffer = new byte[1024];
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
}
}
}
위의 코드에서 imageUrl
에 다운로드할 이미지의 URL을 설정한 후, savePath
에 이미지를 저장할 경로와 파일명을 설정합니다. 다운로드한 이미지는 해당 경로에 저장됩니다.
HttpClient를 사용하여 특정 웹 페이지에서 이미지를 다운로드하는 방법을 소개했습니다. HttpClient를 사용하면 웹 페이지에서 다운로드하려는 데이터에 따라 다양한 작업을 할 수 있습니다. HttpClient의 다른 기능 및 사용 방법에 대한 자세한 내용은 Apache HttpComponents 프로젝트의 공식 문서를 참조하시기 바랍니다.
참고 자료: