How do I make HttpURLConnection use a proxy? How do I make HttpURLConnection use a proxy? java java

How do I make HttpURLConnection use a proxy?


Since java 1.5 you can also pass a java.net.Proxy instance to the openConnection(proxy) method:

//Proxy instance, proxy ip = 10.0.0.1 with port 8080Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("10.0.0.1", 8080));conn = new URL(urlString).openConnection(proxy);

If your proxy requires authentication it will give you response 407.

In this case you'll need the following code:

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


This is fairly easy to answer from the internet. Set system properties http.proxyHost and http.proxyPort. You can do this with System.setProperty(), or from the command line with the -D syntax. EDIT: per comment, set https.proxyPort and https.proxyHost for HTTPS.


Proxies are supported through two system properties: http.proxyHost and http.proxyPort. They must be set to the proxy server and port respectively. The following basic example illustrates it:

String url = "http://www.google.com/",       proxy = "proxy.mydomain.com",       port = "8080";URL server = new URL(url);Properties systemProperties = System.getProperties();systemProperties.setProperty("http.proxyHost",proxy);systemProperties.setProperty("http.proxyPort",port);HttpURLConnection connection = (HttpURLConnection)server.openConnection();connection.connect();InputStream in = connection.getInputStream();readResponse(in);