[java] HttpClient를 사용하여 Basic 인증 헤더를 추가하는 방법은?
- HttpClient 객체를 생성합니다.
HttpClient httpClient = HttpClient.newBuilder()
.version(HttpClient.Version.HTTP_1_1)
.build();
- HttpRequest 객체를 생성하고, 인증 헤더를 추가합니다.
String username = "사용자명";
String password = "비밀번호";
String url = "인증이 필요한 URL";
String auth = username + ":" + password;
byte[] encodedAuth = Base64.getEncoder().encode(auth.getBytes(StandardCharsets.UTF_8));
String authHeaderValue = "Basic " + new String(encodedAuth);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", authHeaderValue)
.build();
- HttpClient로 HttpRequest를 실행하고, 응답을 받습니다.
HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
String responseBody = response.body();
System.out.println(responseBody);
위의 코드는 Java 11에서 사용할 수 있는 HttpClient를 이용한 예제입니다. 사용자명과 비밀번호를 Base64로 인코딩하여 Authorization 헤더에 추가하면, 요청을 보낼 때 인증이 진행되어 안전한 통신이 가능합니다.
참고 자료: