DnsOptions

public final class DnsOptions extends Object

一个配置 Cronet 主机解析功能的类。请注意,尽管为了简洁起见,我们将 DNS 作为最常用的机制,但这些设置也适用于解析主机名的其他方式,例如 hosts 文件解析。

Cronet 以两种方式解析主机名:要么使用系统解析器(使用系统库提供的 getaddrinfo),要么使用内置在 Cronet 使用的网络堆栈中的自定义解析器。

内置堆栈相比使用系统解析器具有多个优势

  • 它专为网络堆栈的需求而定制,尤其注重速度和稳定性。
  • getaddrinfo 是一个阻塞调用,需要专门的工作线程,并且无法取消(我们需要放弃该线程直到调用完成)
  • getaddrinfo 接口无法深入了解失败的根本原因
  • struct addrinfo 不提供返回地址的 TTL(生存时间)。这限制了处理缓存的灵活性(例如允许使用过时的 DNS 记录),并且要求我们要么依赖操作系统的 DNS 缓存,要么对 TTL 极其保守。
  • 作为操作系统的一部分,getaddrinfo 演进缓慢。使用自定义堆栈使 Cronet 能够更快地引入加密 DNS 等功能。

此类中的大多数配置仅在使用内置 DNS 解析器时适用。

嵌套类摘要

DnsOptions.Builder 用于构建 DnsOptions 的构建器。 
@interface DnsOptions.Experimental 一个注解,用于标记尚未被视为稳定的 API。 
DnsOptions.StaleDnsOptions 一个配置 Cronet 过期 DNS 功能的类。 

公共方法摘要

static DnsOptions.Builder
Boolean
Boolean
Long
Boolean
DnsOptions.StaleDnsOptions
Boolean

继承的方法摘要

公共方法

public static DnsOptions.Builder builder ()

public Boolean getEnableStaleDns ()

public Boolean getPersistHostCache ()

public Long getPersistHostCachePeriodMillis ()

public Boolean getPreestablishConnectionsToStaleDnsResults ()

public DnsOptions.StaleDnsOptions getStaleDnsOptions ()

public Boolean getUseBuiltInDnsResolver ()