模块  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 - 如果参数为null
      • connectFailed

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

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