【问题标题】:How to use multiple DoH providers using okhttp DnsOverHttps package?如何使用 okhttp DnsOverHttps 包使用多个 DoH 提供程序?
【发布时间】:2021-12-22 21:28:44
【问题描述】:

假设我想先尝试 Cloudflare DoH,然后在失败的情况下回退到 Google 的 DoH,我该怎么做?

不过,使用单个提供程序非常简单。

  val appCache = Cache(File("cacheDir", "okhttpcache"), 10 * 1024 * 1024)
  val bootstrapClient = OkHttpClient.Builder().cache(appCache).build()

  val dns = DnsOverHttps.Builder().client(bootstrapClient)
    .url("https://dns.google/dns-query".toHttpUrl())
    .bootstrapDnsHosts(InetAddress.getByName("8.8.4.4"), InetAddress.getByName("8.8.8.8"))
    .build()

  val client = bootstrapClient.newBuilder().dns(dns).build()

【问题讨论】:

    标签: android dns okhttp


    【解决方案1】:

    您需要实现自己的 Dns 来链接调用。

    请参阅https://github.com/yschimke/okurl/blob/0abaa8510dd5466d5e9a08ebe33a009c491749bf/src/main/kotlin/com/baulsupp/okurl/network/DnsSelector.kt 以获取委托给另一个 Dns 实现的示例。您将需要两名代表并调用一名,然后有条件地调用另一名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-17
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-29
      • 1970-01-01
      相关资源
      最近更新 更多