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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值