「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。

社内ネットワークや閉域環境では、インターネット通信は必ずプロキシサーバ経由というケースが多くあります。
そのため、JavaでREST APIを呼び出そうとしても、

  • 接続できない

  • タイムアウトする

  • 認証エラーになる

といったトラブルに遭遇しがちです。

この記事では、Javaでプロキシ経由でREST APIを呼び出す代表的な方法を、実務向けに分かりやすく解説します。


プロキシ経由通信の仕組み(全体像)

プロキシ経由通信の仕組み(全体像)

通常の通信では、Javaアプリは直接APIサーバに接続します。
しかしプロキシ環境では、Java → プロキシ → REST API という経路になります。

そのため Java 側で、

  • プロキシの ホスト名

  • ポート番号

  • (必要に応じて)認証情報

を正しく設定する必要があります。


方法①:Javaのシステムプロパティで設定する(最も簡単)

HTTP / HTTPS プロキシ設定 

この設定を行うと、HttpURLConnectionHttpClient など、
JVM全体の通信がプロキシ経由になります。

特徴

  • ✅ 実装が簡単

  • ❌ JVM全体に影響する

  • ❌ 個別の通信で切り替えられない


方法②:HttpURLConnection でプロキシを明示指定する

サンプルコード 

特徴

  • ✅ 特定の通信だけプロキシを使える

  • ✅ 既存コードへの影響が少ない

  • ❌ 記述量がやや多い


方法③:Java 11 HttpClient でプロキシ設定(推奨)

Java 11 以降では HttpClient が標準化され、
モダンで読みやすいコードが書けます。

サンプルコード 

特徴

  • ✅ 現在の主流

  • ✅ 非同期通信も可能

  • ✅ プロキシ指定が明確

  • 🔥 新規開発では最有力


プロキシ認証(ID / パスワード)が必要な場合

Basic認証付きプロキシ対応例

社内プロキシでは必須になることが非常に多い設定です。


よくあるエラーと原因

エラー内容主な原因
Connection timed outプロキシ未設定 / ポート違い
407 Proxy Authentication Required認証情報未設定
SSLHandshakeExceptionHTTPSプロキシ or 証明書問題
UnknownHostExceptionDNSがプロキシ経由で解決されていない

社内・閉域環境での実務ポイント

  • プロキシ設定は OS / JVM / Javaコード のどこで行っているか整理する

  • HTTPS通信時は 社内証明書 のインポートが必要な場合あり

  • バッチサーバ・JP1実行時は 起動ユーザーの環境変数にも注意


まとめ

  • Javaでプロキシ経由のREST API通信は 正しい設定が必須

  • Java 11以降なら HttpClient + ProxySelector が最もおすすめ

  • 認証付きプロキシは Authenticator設定を忘れない

  • 社内ネットワークでは 証明書・実行環境差分 に要注意

0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る

Ads by Google

0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る
0
あなたの考えが大好きです、コメントしてください。x