[java] HttpClient를 사용하여 웹 서버의 요청에 대한 캐시 제어하는 방법은?
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

public class CacheControlExample {

    public static void main(String[] args) throws IOException, InterruptedException {
        // HttpClient 인스턴스 생성
        HttpClient client = HttpClient.newBuilder()
                .connectTimeout(Duration.ofSeconds(5)) // 연결 시간 초과 설정
                .build();

        // GET 요청을 보낼 HTTPRequest 객체 생성
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://www.example.com")) // 요청할 URL 설정
                .header("Cache-Control", "no-cache") // 캐시 제어 헤더 설정
                .build();

        // HTTP 요청 보내기
        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

        // 응답 받기
        int statusCode = response.statusCode();
        String responseBody = response.body();

        System.out.println("Status Code: " + statusCode);
        System.out.println("Response Body: " + responseBody);
    }
}

위의 예제 코드에서는 java.net.http.HttpClient를 사용하여 HTTP GET 요청을 보내고, 요청에 대한 캐시를 제어하기 위해 Cache-Control 헤더를 설정합니다. Cache-Control 헤더에는 no-cache 값을 설정하여 캐시를 사용하지 않도록 지정합니다.

이렇게 하면 HttpClient를 통해 서버에 요청을 보낼 때 캐시를 제어할 수 있습니다.