Большая часть ответа есть в существующих ответах, но для меня не совсем. Это то, что работает для меня с java.net.HttpURLConnection (я проверил все случаи с JDK 7 и JDK 8). Обратите внимание, что вам не нужно использовать класс Authenticator.
Случай 1: Прокси-сервер без аутентификации пользователя, доступ к ресурсам HTTP
-Dhttp.proxyHost=myproxy -Dhttp.proxyPort=myport
Случай 2: Прокси с аутентификацией пользователя, доступ к ресурсам HTTP
-Dhttp.proxyHost=myproxy -Dhttp.proxyPort=myport -Dhttps.proxyUser=myuser -Dhttps.proxyPassword=mypass
Случай 3: Прокси-сервер без аутентификации пользователя, доступ к ресурсам HTTPS (SSL)
-Dhttps.proxyHost=myproxy -Dhttps.proxyPort=myport
Случай 4: Прокси с аутентификацией пользователя, доступ к ресурсам HTTPS (SSL)
-Dhttps.proxyHost=myproxy -Dhttps.proxyPort=myport -Dhttps.proxyUser=myuser -Dhttps.proxyPassword=mypass
Случай 5: Прокси-сервер без аутентификации пользователя, доступ к ресурсам HTTP и HTTPS (SSL)
-Dhttp.proxyHost=myproxy -Dhttp.proxyPort=myport -Dhttps.proxyHost=myproxy -Dhttps.proxyPort=myport
Случай 6: Прокси с аутентификацией пользователя, доступ к ресурсам HTTP и HTTPS (SSL)
-Dhttp.proxyHost=myproxy -Dhttp.proxyPort=myport -Dhttp.proxyUser=myuser -Dhttp.proxyPassword=mypass -Dhttps.proxyHost=myproxy -Dhttps.proxyPort=myport -Dhttps.proxyUser=myuser -Dhttps.proxyPassword=mypass
Вы также можете установить свойства в с помощью System.setProperty («ключ», «значение»).
Чтобы получить доступ к ресурсу HTTPS, вам может потребоваться доверять ресурсу, загрузив сертификат сервера и сохранив его в хранилище доверенных сертификатов, а затем используя это хранилище доверенных сертификатов. т.е.
System.setProperty("javax.net.ssl.trustStore", "c:/temp/cert-factory/my-cacerts");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");