2

ネットに接続する必要のあるアプリケーションがあります。プロキシ接続を扱うときにアドバイスが必要です。現在、ユーザーがプロキシ設定を行っているため、入力した情報を使用して接続します。そのような状況に対処するためのより良い方法はありますか?

私は、システムのプロキシ設定を開いてそれらを使用するchromeのようなものを意味します。それを実行してそれらの値を取得する方法は?他の理想的な方法はありますか?

第二に、現在、プロキシセットがあるかどうかを確認しています。はいの場合、私はurl.openConnection(proxy); IFを使用していますが、プレーンurl.openConnection();ではありません。よりクリーンな方法はありますか?システムがプロキシセットに自動的に接続する場所。

4

5 に答える 5

3
//Set the http proxy to webcache.mydomain.com:8080

System.setProperty( "http.proxyHost", "webcache.mydomain.com" );
System.setProperty( "http.proxyPort", "8080" );

System.setProperty( "https.proxyHost", "webcache.mydomain.com" );
System.setProperty( "https.proxyPort", "8080" );
于 2012-10-31T07:07:40.853 に答える
2

ソースコードから使用できます

System.getProperties().put("http.proxyHost", "ProxyURL");
System.getProperties().put("http.proxyPort", "ProxyPort");
System.getProperties().put("http.proxyUser", "UserName");
System.getProperties().put("http.proxyPassword", "Password");

コマンドライン :

  $> java -Dhttp.proxyHost=proxyhostURL -Dhttp.proxyPort=proxyPortNumber
-Dhttp.proxyUser=UserName -Dhttp.proxyPassword=Password ProxyClassHere

書類

于 2012-10-31T07:37:08.297 に答える
0

これも見てください: JVMで使用されるプロキシを設定するにはどうすればよいですか?

これは、いくつかのフラグを使用してJVMを起動することで実行できます。JAVA_FLAGS= -Dhttp.proxyHost = 10.0.0.100 -Dhttp.proxyPort = 8800 java $ {JAVA_FLAGS}

于 2012-10-31T07:28:22.347 に答える
0

同じ問題に直面していて、SOAPクライアントを使用して1つのWSDLを呼び出したいと思いました。SOAP UIを介してWSDLを呼び出すことができましたが、JAVAコードを介して要求をラップしようとすると、失敗していました。問題が見つかり、Javaコードがプロキシのセットを取得していませんでした。Eclipse内でこれらのプロキシを設定して明示的に試しました:Eclipse-> Windows-> Preferences-> Geneal->NetworkConnection。NativeをManualに変更し、プロキシとポートを追加しました。それでも、それは機能しませんでした。最後に、コード内に1行だけ追加しましたが、すべて機能しました:System.setProperty( "java.net.useSystemProxies"、 "true"); これにより、JAVAホームが正しく設定されていれば、Eclipse内のシステム設定プロキシが確実に取得されます。

ありがとうSaurabhM.Chande

于 2014-08-20T08:30:37.773 に答える
0

必要なもの:https ://docs.oracle.com/javase/7/docs/api/java/net/doc-files/net-properties.html

アドバイス:使用しないでください。http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/util/Properties.javaSystem.getProperties().putを参照してください。

/**
 * ....
 * Because {@code Properties} inherits from {@code Hashtable}, the
 * {@code put} and {@code putAll} methods can be applied to a
 * {@code Properties} object.  Their use is strongly discouraged as they
 * allow the caller to insert entries whose keys or values are not
 * {@code Strings}.  The {@code setProperty} method should be used
 * instead.
 * ....
 */

(文字列以外の値で使用すると問題が発生Properties::putします)

于 2016-02-29T09:57:35.740 に答える