使用系统代理
JVM属性java.net.useSystemProxies:boolean可以用来设置代理
当属性为true时,Java网络通信将使用系统代理
System.setProperty("java.net.useSystemProxies", "true");
-Djava.net.useSystemProxies=true
手动设置代理
HTTP
http.proxyHost:java.lang.String代理服务器Hosthttp.proxyPort:int代理服务器端口http.proxyUserName:java.lang.String?代理服务器用户名http.proxyPassword:java.lang.String?代理服务器密码https.proxyHost:java.lang.StringHttps代理服务器Hosthttps.proxyPort:intHttps代理服务器端口https.proxyUserName:java.lang.String?Https代理服务器用户名https.proxyPassword:java.lang.String?Https代理服务器密码
不使用身份验证时,用户名和密码不必填写
System.setProperty("http.proxyHost", "127.0.0.1");System.setProperty("http.proxyPort", "1080");// 不使用身份验证时,以下用户名和密码不必填写System.setProperty("http.proxyUserName", "user");System.setProperty("http.proxyPassword", "passwd");System.setProperty("https.proxyHost", "127.0.0.1");System.setProperty("https.proxyPort", "1080");// 不使用身份验证时,以下用户名和密码不必填写System.setProperty("https.proxyUserName", "user");System.setProperty("https.proxyPassword", "passwd");
-Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=1080 -Dhttp.proxyUserName=user -Dhttp.proxyPassword=passwd -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=1080 -Dhttps.proxyUserName=user -Dhttps.proxyPassword=passwd
SOCKS
socks.proxyHost:java.lang.String代理服务器Hostsocks.proxyPort:int代理服务器端口socks.proxyUserName:java.lang.String?代理服务器用户名socks.proxyPassword:java.lang.String?代理服务器密码
不使用身份验证时,用户名和密码不必填写
System.setProperty("socks.proxyHost", "127.0.0.1");System.setProperty("socks.proxyPort", "1080");// 不使用身份验证时,以下用户名和密码不必填写System.setProperty("socks.proxyUserName", "user");System.setProperty("socks.proxyPassword", "passwd");
-Dsocks.proxyHost=127.0.0.1 -Dsocks.proxyPort=1080 -Dsocks.proxyUserName=user -Dsocks.proxyPassword=passwd
不要代理的Host
如果有不要代理的Host,可以使用nonProxyHosts:java.lang.String?来屏蔽代理
如果有多个服务器,以|符号作为分隔符
http.nonProxyHosts:java.lang.String?https.nonProxyHosts:java.lang.String?socks.nonProxyHosts:java.lang.String?System.setProperty("http.nonProxyHosts", "127.0.0.1|localhost|192.168.*.*|noproxy.example.com");System.setProperty("https.nonProxyHosts", "127.0.0.1|localhost|192.168.*.*|noproxy.example.com");System.setProperty("socks.nonProxyHosts", "127.0.0.1|localhost|192.168.*.*|noproxy.example.com");
-Dhttp.nonProxyHosts=127.0.0.1|localhost|192.168.*.*|noproxy.example.com -Dhttps.nonProxyHosts=127.0.0.1|localhost|192.168.*.*|noproxy.example.com -Dsocks.nonProxyHosts=127.0.0.1|localhost|192.168.*.*|noproxy.example.com
Gradle
gradle可以通过命令设置代理
比如我要执行gradlew buildgradlew build -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=1080 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=1080
