모던 HTTP 클라이언트
깔끔하고 모던한 HTTP 요청을 위한 내장 HttpClient를 사용합니다.
코드 비교
✕ Java 8
URL url = new URL("https://api.com/data");
HttpURLConnection con =
(HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
// read lines, close streams...
✓ Java 11+
var client = HttpClient.newHttpClient();
var request = HttpRequest.newBuilder()
.uri(URI.create("https://api.com/data"))
.build();
var response = client.send(
request, BodyHandlers.ofString());
String body = response.body();
이 코드에 문제가 있나요? 알려주세요.
모던 방식이 더 나은 이유
빌더 API
요청, 헤더, 타임아웃을 위한 유창한 빌더.
HTTP/2 지원
멀티플렉싱과 서버 푸시를 갖춘 내장 HTTP/2.
비동기 준비
sendAsync()가 CompletableFuture를 반환합니다.
이전 방식
HttpURLConnection
모던 방식
HttpClient
JDK 버전
11
난이도
초급
JDK 지원
모던 HTTP 클라이언트
사용 가능
JDK 11 (2018년 9월) 이후 널리 사용 가능
동작 원리
HttpClient는 HTTP/1.1과 HTTP/2, 비동기 요청, WebSocket, 커스텀 실행자, 연결 풀링을 지원합니다. 더 이상 URLConnection을 캐스팅하거나 InputStream을 수동으로 읽을 필요가 없습니다.
관련 문서