基本認証を使用したHTTPリクエストの送信

Java:
基本認証を使用したHTTPリクエストの送信

How to: (やり方)

まずは必要なライブラリをインクルードします。

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Base64;

次に、ベーシック認証のためにユーザー名とパスワードをエンコードします。

String username = "user";
String password = "pass";
String encodedCredentials = Base64.getEncoder().encodeToString((username + ":" + password).getBytes());

HttpClient を作成し、リクエストに認証ヘッダを設定して送信します。

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("http://example.com"))
        .header("Authorization", "Basic " + encodedCredentials)
        .build();

client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
        .thenApply(HttpResponse::body)
        .thenAccept(System.out::println)
        .join();

送信されるHTTPリクエストはこれで完了です。

Deep Dive (詳細解説)

HTTPベーシック認証は古典的な認証の一つで、RFC 7617によって標準化されました。セキュリティが弱いため、HTTPSでの使用が推奨されています。OAuthやJWTなど、よりセキュアな認証方法もありますが、ベーシック認証はシンプルで実装が容易です。

See Also (関連情報)

この記事を参考に、JavaでHTTPリクエストにベーシック認証を行ってみてください。