模块 java.base
 java.net

类 ProxySelector

java.lang.Object
java.net.ProxySelector

public abstract class ProxySelector extends Object
选择在连接到 URL 引用的网络资源时要使用的代理服务(如果有)。代理选择器是此类的具体子类,通过调用 setDefault 方法进行注册。可以通过调用 getDefault 方法检索当前注册的代理选择器。

例如,当代理选择器被注册时,URLConnection 类的子类应该为每个 URL 请求调用 select 方法,以便代理选择器可以决定是使用直接连接还是代理连接。 select 方法使用首选连接方法返回集合上的迭代器。

如果无法与代理(PROXY 或 SOCKS)服务建立连接,则调用者应调用代理选择器的 connectFailed 方法来通知代理选择器代理服务不可用。

默认代理选择器确实强制执行与代理设置相关的一组系统属性

自从:
1.5
  • 构造方法详细信息

    • ProxySelector

      public ProxySelector()
      子类调用的构造方法。
  • 方法详情

    • getDefault

      public static ProxySelector  getDefault()
      获取系统范围的代理选择器。
      返回:
      全系统ProxySelector
      抛出:
      SecurityException - 如果安装了安全管理器并且它拒绝 NetPermission ("getProxySelector")
      自从:
      1.5
      参见:
    • setDefault

      public static void setDefault(ProxySelector  ps)
      设置(或取消设置)系统范围的代理选择器。注意:非标准协议处理程序可能会忽略此设置。
      参数:
      ps - HTTP 代理选择器,或 null 取消设置代理选择器。
      抛出:
      SecurityException - 如果安装了安全管理器并且它拒绝 NetPermission ("setProxySelector")
      自从:
      1.5
      参见:
    • select

      public abstract List <Proxy > select(URI  uri)
      根据用于访问资源的协议和用于访问资源的目标地址选择所有适用的代理。 URI 的格式定义如下:
      • http 连接的 http URI
      • https 连接的 https URI
      • socket://host:port
        用于 tcp 客户端套接字连接
      参数:
      uri - 需要连接的 URI
      返回:
      代理列表。 List 中的每个元素都是 Proxy 类型;当没有代理可用时,该列表将包含一个代表直接连接的Proxy 类型的元素。
      抛出:
      IllegalArgumentException - 如果参数为 null 或者无法根据提供的 uri 确定协议或主机
    • connectFailed

      public abstract void connectFailed(URI  uri, SocketAddress  sa, IOException  ioe)
      调用以指示无法建立到代理/socks 服务的连接。此方法的实现可以使用地址和尝试连接时捕获的 IOException 暂时删除代理或重新排序 select(URI) 返回的代理序列。
      参数:
      uri - sa 处的代理服务失败的 URI。
      sa - 代理/SOCKS 服务的套接字地址
      ioe - 连接失败时抛出的 I/O 异常。
      抛出:
      IllegalArgumentException - 如果任一参数为空
    • of

      public static ProxySelector  of(InetSocketAddress  proxyAddress)
      返回一个 ProxySelector,它对所有 HTTP 和 HTTPS 请求使用给定的代理地址。如果代理是 null 则禁用代理。
      参数:
      proxyAddress - 代理的地址
      返回:
      代理选择器
      自从:
      9