How can I make a URL connection through a proxy if the proxy server requires login information (user name, password)?
To have your URLConnection object use a proxy, you will first need to set some system properties:
Properties properties = System.getProperties(); properties.put("http.proxyHost", "my.proxyhost.com"); properties.put("http.proxyPort", "1234");where you should use the fully-qualified domain name of your proxy host in place of "my.proxyhost.com" and your proxy's port number in place of "1234".
If your proxy server requires user name/password authentication you need to insert this login information into the HTTP header by invoking the setRequestProperty() method of the URLConnection. The HTTP protocol requires that the user name/password combination be Base64 encoded. This is not encryption - it is simply a way of representing ASCII characters using a reduced character set for portability.
URL url = new URL("www.jGuru.com"); URLConnection connection = url.openConnection(); String login = "username:password"; String encodedLogin = new BASE64Encoder().encodeBuffer(login.getBytes()); connection.setRequestProperty("Proxy-Authorization", "Basic " + encodedLogin);This should establish the URL connection, which you can then use however you like.