鸿蒙OS开发文档 鸿蒙OS ProxySelector

2024-02-25 开发教程 鸿蒙OS开发文档 匿名 1

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 voidconnectFailed(URI uri, SocketAddress sa, IOException ioe)调用以指示无法建立到proxy/socks服务器的连接。
static ProxySelectorgetDefault()获取系统范围的代理选择器。
abstract ListProxyselect(URI uri)根据协议选择所有适用的代理来访问资源,并选择目标地址来访问资源。
static voidsetDefault(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)

设置(或取消设置)系统范围的代理选择器。 注意:非标准协议处理程序可能会忽略此设置。

参数:

参数名称参数描述
psHTTP 代理选择器,或 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) 返回的代理序列。

参数:

参数名称参数描述
urisa 上的代理未能提供服务的 URI。
saproxy/SOCKS 服务器的套接字地址
ioe连接失败时抛出的 I/O 异常。

Throws:

Throw名称Throw描述
IllegalArgumentException如果任一参数为空