如何配置用户名和密码以使用Java验证http代理服务器?
我刚刚发现以下配置参数:
http.proxyHost=<proxyAddress> http.proxyPort=<proxyPort> https.proxyHost=<proxyAddress> https.proxyPort=<proxyPort>
但是,我的代理服务器需要身份验证。如何配置我的应用程序以使用代理服务器?
(编辑:正如OP所指出的,java.net.Authenticator也需要使用a 。为了正确起见,我相应地更新了我的答案。)
java.net.Authenticator
(编辑#2:正如另一个答案中指出的那样,在JDK 8中,需要basic从jdk.http.auth.tunneling.disabledSchemes属性中删除身份验证方案)
basic
jdk.http.auth.tunneling.disabledSchemes
对于身份验证,用于java.net.Authenticator设置代理的配置并设置系统属性http.proxyUser和http.proxyPassword。
http.proxyUser
http.proxyPassword
final String authUser = "user"; final String authPassword = "password"; Authenticator.setDefault( new Authenticator() { @Override public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(authUser, authPassword.toCharArray()); } } ); System.setProperty("http.proxyUser", authUser); System.setProperty("http.proxyPassword", authPassword); System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");