10

これらのプロパティを設定した後の Java デスクトップ アプリケーションの場合

System.setProperty("java.net.useSystemProxies","true");
System.setProperty("http.proxyHost", "1.1.1.1");
System.setProperty("http.proxyPort", "8080");

すべての http 接続は、定義されたプロキシ経由で行われます。

ただし、アプレットの場合、これらは機能しません(アプレット ビューアでは機能しますが、ブラウザでは機能しません)。アプレットは常に、コントロール パネル\java\ネットワーク設定\プロキシ設定で定義されているこれらの設定を使用します。

アプレットでプロキシを設定するにはどうすればよいですか? (接続を開くたびにプロキシクラスを使用することは、私にとっては解決策ではありません。)

アプレットはJava 1.6で署名およびコンパイルされています

4

2 に答える 2

7

システム プロパティのアプローチがうまくいかない本当の理由は、アプレットが起動するまでに、Java ランタイム システムがすでにプロパティを読み取り、デフォルトのプロキシ セレクタを設定しているためだと思います。

使ってみましたProxySelectorか?このドキュメントのセクション 4) を参照してください。

もちろん、これは、アプレットが署名付きアプレットである場合にのみ機能する可能性があります。

于 2011-07-13T10:39:47.397 に答える
0

API を使用して実行できますが、接続ごとに実行することはできません。

URL.openConnection() を見てください。呼び出しをハンドラーに委任します。ハンドラはハンドラ ファクトリによって作成されます (登録されている場合)。そのため、独自のファクトリを登録し、プロキシ経由で URL 接続を実行する (URL.openConnection(proxy) を呼び出す) URL ハンドラを作成する必要があります。

ファクトリは、インターフェイス URLStreamHandlerFactory を実装する必要があり、静的メソッド URL.setURLStreamHandlerFactory() を呼び出すことで登録できます。

于 2011-07-13T10:40:44.580 に答える