DnsOptions

public final class DnsOptions


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

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

与使用系统解析器相比,内置堆栈具有以下几项优势:

  • 它已根据网络堆栈的需求(尤其是速度和稳定性)进行了量身定制。
  • getaddrinfo 是一个阻塞调用,需要专用工作线程,并且无法取消(我们需要放弃线程,直到调用完成)
  • getaddrinfo 界面无法提供有关故障根本原因的深入分析
  • struct addrinfo 不提供返回地址的 TTL(存留时间)。这会限制处理缓存的灵活性(例如,允许使用过时的 DNS 记录),并要求我们要么依赖操作系统 DNS 缓存,要么在 TTL 方面非常保守。
  • 作为操作系统的一部分,getaddrinfo 的演变速度较慢。使用自定义堆栈可让 Cronet 更快地引入加密 DNS 等功能。

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

摘要

嵌套类型

public final class DnsOptions.Builder

DnsOptions 的构建器。

一种注释,用于标记尚未被视为稳定的 API。

用于配置 Cronet 的过时 DNS 功能的类。

StaleDnsOptions 的构建器。

公共方法

builder

public static DnsOptions.Builder builder()

getEnableStaleDns

public @Nullable Boolean getEnableStaleDns()

getPersistHostCache

public @Nullable Boolean getPersistHostCache()

getPersistHostCachePeriodMillis

public @Nullable Long getPersistHostCachePeriodMillis()

getPreestablishConnectionsToStaleDnsResults

public @Nullable Boolean getPreestablishConnectionsToStaleDnsResults()

getStaleDnsOptions

public @Nullable DnsOptions.StaleDnsOptions getStaleDnsOptions()

getUseBuiltInDnsResolver

public @Nullable Boolean getUseBuiltInDnsResolver()