HttpURLConnection がプロキシを使用しているかどうかを判断しようとすると、次のコードが誤って false を返す可能性があります:
conn = new URL(urlString).openConnection(); System.out.println("Proxy? " + conn.usingProxy());
この現象は、プロキシ サーバーを介して接続しているにもかかわらず発生します。 Java 仮想マシン (JVM) は通常、オペレーティング システムの設定からプロキシ情報を取得します。ただし、特定の状況では、JVM がプロキシ構成を認識しない可能性があります。
HttpURLConnection が適切なプロキシを使用できるようにするには、明示的に指定する必要があります。プロキシ情報。これは、Proxy インスタンスを構築し、それを openConnection(proxy) メソッドに渡すことで実現できます。
//Proxy instance, proxy ip = 10.0.0.1 with port 8080 Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("10.0.0.1", 8080)); conn = new URL(urlString).openConnection(proxy);
プロキシが認証を必要とする場合、HttpURLConnection は、 407 応答コード。この問題を解決するには、オーセンティケーターを次のように構成できます:
Authenticator authenticator = new Authenticator() { public PasswordAuthentication getPasswordAuthentication() { return (new PasswordAuthentication("user", "password".toCharArray())); } }; Authenticator.setDefault(authenticator);
以上がHttpURLConnection がプロキシを使用して認証を処理することを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。