java代码中发送http请求的DnsResolver使用问题

时间:2025-04-06 08:18:59

http请求中使用DnsResolver的方式有两种,一种是使用默认的DnsResolver,一种是自定义一种DnsResolver

1. 使用默认的DnsResolver

DnsResolver dnsResolver = new SystemDefaultDnsResolver();
这种方式,当代码运行时,会用代码所在的机器上的host文件一些一些其他的方式去解析目的机器(域名)

2. 自定义DnsResolver

代码如下

  1. private static DnsResolver getDnsResolver() {
  2. InMemoryDnsResolver dnsResolver = new InMemoryDnsResolver();
  3. try {
  4. ("", ("1.1.1.1"));
  5. ("", ("2.2.2.2"));
  6. } catch (Exception e) {
  7. ();
  8. }
  9. return dnsResolver;
  10. }

这样,代码运行时就会根据自定义的这个DnsResolver来解析,比如http请求中目的机器是,那么目的机器就会被解析成2.2.2.2