首页 > 解决方案 > 有没有办法使用 okhttp 为每个请求指定不同的 DNS 查找?

问题描述

我想通过一些参数分发请求。例如,当使用 http DNS 时。

有没有办法为每个请求指定不同的 DNS 解析器?谢谢!

标签: dnsokhttpresolver

解决方案


由于连接重用,无法保证在开始您的请求之前将使用 DNS。为了严格实现您的要求,您应该为每个请求集群创建一个具有不同 DNS 实现的新客户端。

  val client1 = client.newBuilder().dns(externalDns).build()
  val client2 = client.newBuilder().dns(intranetDns).build()

但是,如果拆分是按主机名进行的,那么您可以覆盖通用 DNS 并使其执行您需要的任何操作。

您应该使用事件侦听器确认您想要的行为。

有关连接事件记录的文档。

一篇关于调试连接重用的好文章。


推荐阅读