java.lang.Object
java.net.ProxySelector
选择要使用的代理服务器(如果有)以连接到由URL引用的网络资源。代理选择器是这个类的一个具体子类,并通过调用
setDefault
方法进行注册。可以通过调用getDefault
方法来检索当前注册的代理选择器。
当注册了代理选择器时,例如,URLConnection类的子类应该为每个URL请求调用select
方法,以便代理选择器可以决定是使用直接连接还是代理连接。 select
方法返回一个首选连接方法的集合的迭代器。
如果无法建立到代理(PROXY或SOCKS)服务器的连接,则调用者应调用代理选择器的connectFailed
方法,通知代理选择器代理服务器不可用。
默认代理选择器确实执行与代理设置相关的一组系统属性。
- 自从:
- 1.5
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionabstract void
connectFailed
(URI uri, SocketAddress sa, IOException ioe) 表示无法建立到代理/socks服务器的连接。static ProxySelector
获取系统范围的代理选择器。static ProxySelector
of
(InetSocketAddress proxyAddress) 返回一个ProxySelector,该ProxySelector为所有HTTP和HTTPS请求使用给定的代理地址。根据用于访问资源的协议和用于访问资源的目标地址,选择所有适用的代理。static void
设置(或取消设置)系统范围的代理选择器。
-
Constructor Details
-
ProxySelector
public ProxySelector()子类调用的构造函数。
-
-
Method Details
-
getDefault
获取系统范围的代理选择器。- 返回:
-
系统范围的
ProxySelector
- 抛出:
-
SecurityException
- 如果安装了安全管理器并且拒绝NetPermission
("getProxySelector")
- 自从:
- 1.5
- 参见:
-
setDefault
设置(或取消设置)系统范围的代理选择器。注意:非标准协议处理程序可能会忽略此设置。- 参数:
-
ps
- HTTP代理选择器,或null
以取消设置代理选择器。 - 抛出:
-
SecurityException
- 如果安装了安全管理器并且拒绝NetPermission
("setProxySelector")
- 自从:
- 1.5
- 参见:
-
select
根据用于访问资源的协议和用于访问资源的目标地址,选择所有适用的代理。URI的格式定义如下:- http URI用于http连接
- https URI用于https连接
socket://host:port
用于tcp客户端套接字连接
- 参数:
-
uri
- 需要连接的URI - 返回:
-
代理列表。列表中的每个元素都是
Proxy
类型;当没有可用代理时,列表将包含一个代表直接连接的Proxy
元素。 - 抛出:
-
IllegalArgumentException
- 如果参数为null或无法从提供的uri
中确定协议或主机
-
connectFailed
表示无法建立到代理/socks服务器的连接。此方法的实现可以暂时删除代理或重新排列由select(URI)
返回的代理序列,使用地址和尝试连接时捕获的IOException。- 参数:
-
uri
- 代理在sa上无法提供服务的URI。 -
sa
- 代理/SOCKS服务器的套接字地址 -
ioe
- 尝试连接时抛出的I/O异常。 - 抛出:
-
IllegalArgumentException
- 如果任一参数为null
-
of
返回一个ProxySelector,该ProxySelector为所有HTTP和HTTPS请求使用给定的代理地址。如果代理为null
,则禁用代理。- 参数:
-
proxyAddress
- 代理的地址 - 返回:
- 一个ProxySelector
- 自从:
- 9
-