DnsOptions

public final class DnsOptions extends Object

配置 Cronet 主机解析功能的类。请注意,尽管为简洁起见,我们通常将 DNS 称为最常用的机制,但设置也适用于主机文件解析等其他主机名解析方式。

Cronet 通过两种方式解析主机名 - 使用系统解析器(利用系统库提供的 getaddrinfo),或使用 Cronet 使用的网络堆栈内置的自定义解析器。

内置堆栈相对于使用系统解析器具有以下几个优势

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

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

嵌套类摘要

class DnsOptions.Builder DnsOptions 的 Builder。 
@interface DnsOptions.Experimental 用于尚未被视为稳定的 API 的注解。 
class 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 ()