[java] HttpClient를 사용하여 특정 웹 페이지의 이미지를 다운로드하는 방법은?

이미지 다운로드는 HttpClient 라이브러리를 사용하여 간단하게 수행할 수 있습니다. HttpClient는 Apache HttpComponents 프로젝트의 일부입니다. 다음은 HttpClient를 사용하여 특정 웹 페이지에서 이미지를 다운로드하는 예시입니다.

  1. HttpClient의 의존성 추가 먼저, 프로젝트의 build.gradle 파일에 HttpClient 의존성을 추가해야 합니다.
dependencies {
    implementation 'org.apache.httpcomponents:httpclient:4.5.13'
}
  1. 이미지 다운로드 코드 작성 다음은 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 프로젝트의 공식 문서를 참조하시기 바랍니다.

참고 자료: