ProxySelector
java.lang.Object
|—java.net.ProxySelector
public abstract class ProxySelector
extends Object
选择连接到 URL 引用的网络资源时要使用的代理服务器(如果有)。 代理选择器是此类的具体子类,并通过调用 setDefault 方法进行注册。 当前注册的代理选择器可以通过调用 getDefault 方法来检索。
例如,当代理选择器注册时,URLConnection 类的子类应该为每个 URL 请求调用 select 方法,以便代理选择器可以决定是否应该使用直接连接或代理连接。 select 方法使用首选连接方法返回集合上的迭代器。
如果无法与代理(PROXY 或 SOCKS)服务器建立连接,则调用者应调用代理选择器的 connectFailed 方法来通知代理选择器代理服务器不可用。
默认代理选择器确实强制执行一组与代理设置相关的系统属性。
构造函数摘要
构造函数 | 描述 |
---|---|
ProxySelector() |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
abstract void | connectFailed(URI uri, SocketAddress sa, IOException ioe) | 调用以指示无法建立到proxy/socks服务器的连接。 |
static ProxySelector | getDefault() | 获取系统范围的代理选择器。 |
abstract ListProxy | select(URI uri) | 根据协议选择所有适用的代理来访问资源,并选择目标地址来访问资源。 |
static void | setDefault(ProxySelector ps) | 设置(或取消设置)系统范围的代理选择器。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造函数详细信息
ProxySelector
public ProxySelector()
方法详情
getDefault
public static ProxySelector getDefault()
获取系统范围的代理选择器。
返回:
系统范围的 ProxySelector
Throws:
Throw名称 | Throw描述 |
---|---|
SecurityException | 如果已安装安全管理器并且它拒绝 NetPermission(“getProxySelector”) |
setDefault
public static void setDefault(ProxySelector ps)
设置(或取消设置)系统范围的代理选择器。 注意:非标准协议处理程序可能会忽略此设置。
参数:
参数名称 | 参数描述 |
---|---|
ps | HTTP 代理选择器,或 null 以取消设置代理选择器。 |
Throws:
Throw名称 | Throw描述 |
---|---|
SecurityException | 如果已安装安全管理器并且它拒绝 NetPermission(“setProxySelector”) |
select
public abstract ListProxy select(URI uri)
根据协议选择所有适用的代理来访问资源,并选择目标地址来访问资源。 URI 的格式定义如下:
- http 连接的 http URI
- https 连接的 https URI
- socket://host:port 用于 tcp 客户端套接字连接
参数:
参数名称 | 参数描述 |
---|---|
uri | 连接所需的 URI |
返回:
代理列表。 List 中的每个元素都是 Proxy 类型; 当没有可用的代理时,列表将包含一个代表直接连接的代理类型元素。
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | 如果参数为空 |
connectFailed
public abstract void connectFailed(URI uri, SocketAddress sa, IOException ioe)
调用以指示无法建立到proxy/socks服务器的连接。 此方法的实现可以使用地址和尝试连接时捕获的 IOException 临时删除代理或重新排序 select(java.net.URI) 返回的代理序列。
参数:
参数名称 | 参数描述 |
---|---|
uri | sa 上的代理未能提供服务的 URI。 |
sa | proxy/SOCKS 服务器的套接字地址 |
ioe | 连接失败时抛出的 I/O 异常。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | 如果任一参数为空 |