> 文章列表 > Java中如何为HTTP请求设置代理?

Java中如何为HTTP请求设置代理?

Java中如何为HTTP请求设置代理?

一.什么是代理服务器

代理服务器充当你和Internet之间的网关,就像一个中间人。它实际上是一个中间服务器,可以将用户与它们游览的网站区分开。

如果你使用了代理服务器,那么网络流量会通过代理服务器流向你请求的地址。然后该请求通过同一台代理服务器返回,然后代理服务器将从网站接收到的数据转发给你。

当然如果仅仅是这样,也没什么必要使用代理服务器,我们直接访问网站岂不更美?

现在代理服务器的功能远不只是转发Web请求,而这一切都是为了保证数据安全和网络性能。代理服务器充当防火墙和Web筛选器,提供共享的网络连接,并缓存数据以加快常见请求的速度。
而且还可以保护用户和内部网络以免收到外部Internet的不良影响。

二.Java如何使用代理服务器

java 有两种方式可以设置代理服务器

1.如何设置

1.通过命令行选项进行设置

java -Dhttp.proxyHost=webcache.example.com 
-Dhttp.proxyPort=8080 
-Dhttp.nonProxyHosts="localhost|host.example.com" 
test.jar 

所有http连接都将通过webcache.example.com上的代理服务器在端口8080上监听(如果不指定端口默认是80),此外,连接到localhost或host.example.com时将不使用代理。
2.通过System.setProperty(String,String)方法

// 设置代理
System.setProperty("http.proxyHost", "webcache.example.com");
System.setProperty("http.proxyPort", "8080");
// 下一个连接将会使用代理
URL url = new URL("http://java.example.org/");
InputStream in = url.openStream();
// 清除代理
System.clearProperty("http.proxyHost");// 从现在开始,http连接将直接完成而不再使用代理

2.参数说明

1.http.proxyHost : 代理服务器主机名

2.http.proxyPort : 端口号,默认是80

3.https.proxyHost : https代理服务器主机名

4.https.proxyPort: 代理端口号,默认是443

5.http.nonProxyHosts : 指定绕过代理的主机列表,使用 | 分割的模式列表,可以以通配符 * 开头或者结尾,任何匹配这些模式之一的主机都将通过直接连接而不是通过代理访问。该设置对http,https通用