HttpClient設置DNS

直接上代碼



import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.config.Registry;
import org.apache.http.config.RegistryBuilder;
import org.apache.http.conn.DnsResolver;
import org.apache.http.conn.socket.ConnectionSocketFactory;
import org.apache.http.conn.socket.PlainConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.impl.conn.SystemDefaultDnsResolver;

import java.net.InetAddress;
import java.net.UnknownHostException;

/**
 * @Description: java類作用描述
 * @Author: 夏沫
 * @CreateDate: 2019/11/21
 */
public class Test2 {
    public  static  void main(String[] args)  throws Exception {

        DnsResolver dnsResolver = new SystemDefaultDnsResolver() {
            @Override
            public InetAddress[] resolve(final String host) throws UnknownHostException {
                if (host.equalsIgnoreCase("www.baidu.com")) {
                    return new InetAddress[]{InetAddress.getByName("10.179.181.183")};
                } else {
                    return super.resolve(host);
                }
            }
        };

        Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
                .register("http", PlainConnectionSocketFactory.getSocketFactory())
                .register("https", SSLConnectionSocketFactory.getSocketFactory())
                .build();


        PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry, dnsResolver);
        CloseableHttpClient client = HttpClients.custom().setConnectionManager(connManager).build();

        HttpGet httpget =  new HttpGet("http://www.baidu.com:8899/queryRecording/get?startTimestamp=0&endTimestamp=16525889200000&connId=000502d2e69d7b99&sourceName=finance&pageNum=1&pageSize=10");
        System.out.println(httpget.getRequestLine());

        //  發送請求並返回結果
        HttpResponse response = client.execute(httpget);
        System.out.println(response.getEntity().getContentType());
        System.out.println(response.getStatusLine());
    }


}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章