http请求中使用DnsResolver的方式有两种,一种是使用默认的DnsResolver,一种是自定义一种DnsResolver
1. 使用默认的DnsResolver
DnsResolver dnsResolver = new SystemDefaultDnsResolver();
这种方式,当代码运行时,会用代码所在的机器上的host文件一些一些其他的方式去解析目的机器(域名)
2. 自定义DnsResolver
代码如下
private static DnsResolver getDnsResolver() {
InMemoryDnsResolver dnsResolver = new InMemoryDnsResolver();
try {
dnsResolver.add("dev4.baike.xx.com", Inet4Address.getByName("1.1.1.1"));
dnsResolver.add("baike.baidu.com", Inet4Address.getByName("2.2.2.2"));
} catch (Exception e) {
e.printStackTrace();
}
return dnsResolver;
}
这样,代码运行时就会根据自定义的这个DnsResolver来解析,比如http请求中目的机器是baike.baidu.com,那么目的机器就会被解析成2.2.2.2