2

I have an application which needs to connect to net. I need some advice when dealing with proxy Connections. Currently the user sets the proxy settings and hence I use the entered information to connect. Is there a better way to deal with such situations.

I mean something like chrome which opens system's proxy settings and then uses them. How to do it and retrieve those values? Any other Ideal method?

Secondly, currently I am checking if there is a proxy set or not. If yes, I am using url.openConnection(proxy); IF not then plain url.openConnection(); Is there a more cleaner way of doing it? where system automatically connects with proxy set.

5 Answers 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" );
Sign up to request clarification or add additional context in comments.

Comments

2

From source code we can use

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

Command Line :

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

Document

1 Comment

0

Take a look at this too: How do I set the proxy to be used by the JVM

It can be done by starting the JVM with some flags: JAVA_FLAGS=-Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800 java ${JAVA_FLAGS}

Comments

0

I was facing the same problem and wanted to call 1 WSDL using SOAP Client. I was able to call the WSDL through SOAP UI But when i tried wrapping up the request through my JAVA code, it was failing. I found the problem and my java code was not picking up the proxy's set. I tried explicitely by setting these proxies within my Eclipse : Eclipse -> Windows -> Preferences -> Geneal -> Network Connection. Changed Native to Manual and added proxy & Port. Still, it did not work. Finally, I added only 1 line within my code and it worked all : System.setProperty("java.net.useSystemProxies", "true"); This will surely pick up the system set proxy within Eclipse provided your JAVA home is set correctly.

Thanks Saurabh M. Chande

Comments

0

All you need: https://docs.oracle.com/javase/7/docs/api/java/net/doc-files/net-properties.html

Advice: Do not use System.getProperties().put, see http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/util/Properties.java

/**
 * ....
 * 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.
 * ....
 */

(you will get in trouble if you use Properties::put with a non-String value)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.