java.lang.Object java.net.ProxySelector
public abstract class ProxySelector
连接到 URL 引用的网络资源时选择要使用的代理服务器(如果有)。代理选择器是此类的具体子类,通过调用 setDefault
方法注册。当前注册的代理选择器可以通过调用 getDefault
方法获得。
例如,注册代理选择器时,URLConnection 类的子类应该调用每个 URL 请求的 select
方法,这样代理选择器便可以决定应该使用直接连接还是代理连接。select
方法返回使用首选连接方法的连接上的迭代器。
如果无法建立到代理(PROXY 或 SOCKS)服务器的连接,则调用方应该调用代理选择器的 connectFailed
方法来通知代理选择器,代理服务器不可用。
构造方法摘要 | |
---|---|
ProxySelector() |
方法摘要 | |
---|---|
abstract void |
connectFailed(URI uri, SocketAddress sa, IOException ioe) 调用此方法来指示无法建立到代理/socks 服务器的连接。 |
static ProxySelector |
getDefault() 获取系统级代理选择器。 |
abstract List<Proxy> |
select(URI uri) 基于访问资源所需的协议和访问资源的目标地址选择所有可用的代理。 |
static void |
setDefault(ProxySelector ps) 设置(或取消设置)系统级代理选择器。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public ProxySelector()
方法详细信息 |
---|
public static ProxySelector getDefault()
ProxySelector
SecurityException
- 如果已安装安全管理器并且它拒绝
NetPermission
("getProxySelector")
setDefault(ProxySelector)
public static void setDefault(ProxySelector ps)
ps
- HTTP 代理选择器,或者为
null
,表示取消设置代理选择器。
SecurityException
- 如果已安装安全管理器并且它拒绝
NetPermission
("setProxySelector")
getDefault()
public abstract List<Proxy> select(URI uri)
socket://host:port
uri
- 所需连接的 URI
Proxy
类型;当不存在可用代理时,列表将包含一个
Proxy
类型的元素,该元素表示直接连接。
IllegalArgumentException
- 如果任何一个参数为 null
public abstract void connectFailed(URI uri, SocketAddress sa, IOException ioe)
uri
- 位于 sa 的代理未能提供服务的 URI。
sa
- 代理/SOCKS 服务器的套接字地址
ioe
- 连接失败时抛出的 I/O 异常。
IllegalArgumentException
- 如果任何一个参数为 null