[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를 통해 서버에 요청을 보낼 때 캐시를 제어할 수 있습니다.