1. ホーム
  2. java

[解決済み] HttpURLConnectionにプロキシを使用させるにはどうしたらよいですか?

2022-05-04 15:26:02

質問

こうすれば...

conn = new URL(urlString).openConnection();
System.out.println("Proxy? " + conn.usingProxy());

と表示されます。

Proxy? false

問題は、私がプロキシの後ろにいることです。JVMはWindows上でどこからプロキシ情報を取得するのでしょうか?どのようにセットアップすればいいのでしょうか?私の他のすべてのアプリケーションは、私のプロキシに完全に満足しているようです。

どのように解決するのですか?

java 1.5以降では、このメソッドに java.net.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);

プロキシが認証を要求している場合、407 の応答が返されます。

この場合、以下のコードが必要です。

    Authenticator authenticator = new Authenticator() {

        public PasswordAuthentication getPasswordAuthentication() {
            return (new PasswordAuthentication("user",
                    "password".toCharArray()));
        }
    };
    Authenticator.setDefault(authenticator);