Proxy.NO_PROXY を使って 1 つの Java URLConnection でプロキシをバイパスする
JVM の共有プロキシ設定を一時的に変更せずに、サポートされている URL 接続で Proxy.NO_PROXY を使用します。
サポートされている HTTP または HTTPS の URL 接続では、Proxy.NO_PROXY を渡すことで直接接続という選択が明示されます:
URLConnection connection = URI.create("https://example.com/")
.toURL().openConnection(Proxy.NO_PROXY);
connection.setConnectTimeout(5000);
connection.setReadTimeout(10000);これにより、1 回の操作の前後でグローバルに設定して元に戻す手順を避けられます。他のスレッドはアプリケーションの既存のプロキシ ポリシーを使い続けられます。
この引数はこの URLConnection の経路にのみ適用されます。別の HTTP クライアントのビルダー、別のライブラリのソケット、オペレーティング システムのネットワーク構成は変更しません。
ネットワークが外部アクセスにプロキシを必要とする場合、直接接続は依然として失敗する可能性があります。その失敗はプロキシ認証エラーとは区別してください。この操作は意図的にプロキシをスキップしています。
また、HTTPS 宛先の通常の TLS 検証は維持してください。直接経路を選ぶと中間経路は変わりますが、宛先証明書が確立すべき ID は変わりません。