ページ内ナビ
概要
Apache HttpClientは、JavaアプリケーションからHTTP通信を行うためのクライアントライブラリです。classicと非同期のAPI、接続管理、認証、Cookie、キャッシュなどを提供し、HTTP/1.1とHTTP/2を扱うアプリケーションの通信層を構成できます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
classicと非同期のHTTPクライアントを使い分ける
通常の同期処理ではCloseableHttpClientを中心としたclassic APIを利用でき、高い同時実行性が必要な場面では非同期transportを選べます。用途に応じてrequest実行方式を分けながら、同じHttpComponents系の設定モデルを利用できます。
接続・認証・Cookieなど通信の状態管理をまとめる
HTTP requestの実行だけでなく、接続再利用、認証、Cookie、redirect、圧縮、cacheなど、長時間動作するclientに必要な周辺機能を組み合わせられます。
向いている用途
導入前の確認
5.6.4はJava 8以上を必要とする
HttpClient 5.6.4はJava 8以上を前提とし、Mavenではorg.apache.httpcomponents.client5:httpclient5:5.6.4として利用します。利用中のJDKと依存解決結果を確認してください。
4.xから5.xはpackageと設定APIの変更を伴う
5.xはorg.apache.hc.client5系packageと新しいartifact座標を使います。4.5.xから更新する場合は単純なversion置換ではなく、公式のmigration guideに沿ってAPIと設定差分を確認します。
参考にした公式資料
- [1]Apache HttpClient README(2026-10-03)
- [2]Apache HttpClient Quick Start(2026-10-03)
- [3]Apache HttpClient Maven coordinates(2026-10-03)
- [4]Apache HttpClient 5.6.4 dependencies(2026-10-03)
- [5]Apache HttpComponents project news(2026-10-03)
- [6]Apache HttpClient Apache-2.0 license(2026-10-03)
編集部からの補足
単純なHTTP呼び出しだけならJDK標準APIで足りる場合があります。接続プール、認証、Cookie、キャッシュ、非同期通信などを一貫して制御したい場合に、HttpClientを比較すると導入理由を明確にできます。
3ステップで試す
- 1
HttpClient 5.6.4を依存関係に追加する
既存のMaven projectの
pom.xmlへ追加します。Java 8以上が必要です。<dependency><groupId>org.apache.httpcomponents.client5</groupId><artifactId>httpclient5</artifactId><version>5.6.4</version></dependency> - 2
GET requestを実行するclientを作成する
公式Quick Startと同じclassic APIの流れでclientを閉じ、response codeを確認します。必要な
org.apache.hc.client5.http.*classをimportしてください。try (CloseableHttpClient httpclient = HttpClients.createDefault()) { ClassicHttpRequest request = ClassicRequestBuilder.get("https://httpbin.org/get").build(); httpclient.execute(request, response -> { System.out.println(response.getCode()); return null; }); } - 3
Mavenでビルドして動作を確認する
既存projectのtestまたは同等の実行方法でHTTP client codeを動かし、接続・TLS・proxyなど実環境の設定も確認します。
mvn test
成長
成長の推移 · 直近30日
1,535 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 16
- Open PR
- 10
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
GitHubのデータGitHubの詳細データを見る
GitHub Topics
- httpcomponents
- Stars
- 1,535
- Forks
- 991
- Watchers
- 100
- Open Issues
- 0
- Contributors
- 112
- 所有者種別
- Organization
- 主要言語
- Java
- ライセンス
- Apache-2.0
- リポジトリ最終更新
- 2026/10/02
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Karate8,974 Stars
共通タグ 2件 · 共通カテゴリ 1件 · 同じ言語
Gherkin風DSLでAPI test・mock server・performance testを一つのframeworkへまとめる
Java - Apache Tomcat8,258 Stars
共通タグ 2件 · 共通カテゴリ 1件 · 同じ言語
Servlet・JSP・WebSocketを実行し、Java Web applicationを配備する
Java - Flask74,816 Stars
共通タグ 2件 · 共通カテゴリ 1件
PythonでURLルーティング・request処理・Jinja templateを組み立てる軽量WSGIフレームワーク
Python - OkHttp47,081 Stars
共通タグ 2件 · 共通カテゴリ 1件
Android/JVMのHTTP・TLS・接続再利用・DNSを一つのtransport layerへまとめる
Kotlin - HTTPie CLI38,503 Stars
共通タグ 2件 · 共通カテゴリ 1件
API requestを人が読めるterminal syntaxで組み立てる
Python - Cap7,924 Stars
共通タグ 2件 · 共通カテゴリ 1件
画像認証を使わず、Proof of Workでボット対策をセルフホストする
JavaScript
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。