方法一:设置java的启动参数
在启动java时增加环境变量参数,比如:
1 |
-Dhttp.proxyHost=代理ip -Dhttp.proxyPort=3128 -Dhttps.proxyHost=代理ip -Dhttps.proxyPort=3128 |
方法二:在java代码初始化时设置环境变量:
1 2 3 4 |
System.setProperty("http.proxyHost", "代理ip"); System.setProperty("http.proxyPort", "3128"); System.setProperty("https.proxyHost", "代理ip"); System.setProperty("https.proxyPort", "3128"); |
方法三:在java 代码中设置使用代理:
1 2 3 |
URL url = new URL("https://某网址"); Proxy proxy = new Proxy(Proxy.Type.DIRECT.HTTP, new InetSocketAddress("代理ip", 3128)); HttpURLConnection conn = (HttpURLConnection) url.openConnection(proxy); |
方法四:如果操作系统已经配置好代理,可以直接使用
1 2 3 4 5 |
System.setProperty("java.net.useSystemProxies", "true"); 当然也可以在启动时增加-Djava.net.useSystemProxies=true 如果某些网址不需要使用代理,可以单独进行设置,比如: -Dhttp.nonProxyHosts="www.hongxuejing.com|localhost" |
但是在实际应用时,只有第二种方法能解决办法,java -jar 添加启动参数并没有用,在项目中也就使用了这种方法。如果哪位大神看到了希望能告知,先谢谢了。
from:https://www.cnblogs.com/badboyf/p/6223457.html
丁乔:方法一的参数补充说明
除了上述 http.proxyHost
和 http.proxyPort
,以及 https.proxyHost
和 https.proxyPort
在代理时比较有用外,还有一个属性也比较有用,那就是 http.nonProxyHosts
,它用来指定哪些主机不使用代理,如果有多个,用英文竖线(|
)分隔,可以使用星号 (*
)作为通配符。
下表是常用协议对应的代理属性:
协议 | 属性(代理主机/代理端口/不使用代理的主机列表) | 默认值 |
---|---|---|
HTTP | http.proxyHost | <none> |
http.proxyPort | 80 | |
http.nonProxyHosts | <none> | |
HTTPS | https.proxyHost | <none> |
https.proxyPort | 443 | |
https.nonProxyHosts | <none> | |
FTP | ftp.proxyHost | <none> |
ftp.proxyPort | 80 | |
ftp.nonProxyHosts | <none> | |
SOCKS | socksProxyHost | <none> |
socksProxyPort | 1080 |
详细介绍请参考官方说明:Java Networking and Proxies
摘自:https://www.cnblogs.com/liangzai-cool/p/6291384.html