Module  java.base
软件包  java.net

Class ProxySelector



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

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

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

    默认代理选择器强制执行与代理设置相关的set of System Properties

    从以下版本开始:
    1.5
    • 构造方法详细信息

      • ProxySelector

        public ProxySelector​()
    • 方法详细信息

      • setDefault

        public static void setDefault​(ProxySelector ps)
        设置(或取消)系统范围的代理选择器。 注意:非标准协议处理程序可能会忽略此设置。
        参数
        ps - HTTP代理选择器,或 null取消设置代理选择器。
        异常
        SecurityException - 如果安全管理器已安装并且它已拒绝NetPermission ("setProxySelector")
        从以下版本开始:
        1.5
        另请参见:
        getDefault()
      • select

        public abstract List<Proxy> select​(URI uri)
        根据访问资源的协议选择所有适用的代理以及访问资源的目标地址。 URI的格式定义如下:
        • http连接的http URI
        • https连接https URI
        • socket://host:port
          用于tcp客户端套接字连接
        参数
        uri - 需要连接的URI
        结果
        代理人名单。 列表中的每个元素都是类型Proxy ; 当没有代理可用时,该列表将包含一个表示直接连接的类型为Proxy元素。
        异常
        IllegalArgumentException - 如果参数为空
      • connectFailed

        public abstract void connectFailed​(URI uri,
                                           SocketAddress sa,
                                           IOException ioe)
        被称为表示连接不能建立到代理/袜子服务器。 该方法的实现可以临时删除代理或重新排序由select(URI)返回的代理序列,使用地址和尝试连接时捕获的IOException。
        参数
        uri - 代理服务器上的 uri URI。
        sa - 代理/ SOCKS服务器的套接字地址
        ioe - 连接失败时抛出的I / O异常。
        异常
        IllegalArgumentException - 如果任一参数为空
      • of

        public static ProxySelector of​(InetSocketAddress proxyAddress)
        返回一个ProxySelector,它为所有HTTP和HTTPS请求使用给定的代理地址。 如果代理是null则禁用代理。
        参数
        proxyAddress - 代理的地址
        结果
        一个ProxySelector
        从以下版本开始:
        9