使用HttpClient4.5 PoolingHttpClientConnectionManager 提交Http请求

本文介绍了使用HttpClient4.5的PoolingHttpClientConnectionManager来提高HTTP请求性能,通过连接池避免频繁的TCP连接建立和关闭,降低资源消耗。并提供了相关代码示例。
摘要由CSDN通过智能技术生成

使用连接池的好处

大家都知道http连接是基于tcp的,而tcp创建连接需要三次握手,断开连接四次挥手,如果我们不使用连接池,那么每发出一个请求,就需要三次握手和四次挥手,而三次握手和四次挥手都是耗资源的操作。试想如果频繁的发出请求,性能是不是会是个瓶颈。所以HttpClient在4之后就出现了连接池的概念,当请求结束并不是直接断开连接,而是返回给连接池方便下次调用。

代码示例


    private static PoolingHttpClientConnectionManager clientConnectionManager=null;
    private static CloseableHttpClient httpClient=null;
    private static RequestConfig config = RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARD_STRICT).build();
    private final static Object syncLock = new Object();
    /**
     * 创建httpclient连接池并初始化
     */
     @PostConstruct
    private void init(){

        try {
            //添加对https的支持,该sslContext没有加载客户端证书
           // 如果需要加载客户端证书,请使用如下sslContext,其中KEYSTORE_FILE和KEYSTORE_PASSWORD分别是你的证书路径和证书密码
            //KeyStore keyStore  =  KeyStore.getInstance(KeyStore.getDefaultType()
            //FileInputStream instream =   new FileInputStream(new File(KEYSTORE_FILE));
            //keyStore.load(instream, KEYSTORE_PASSWORD.toCharArray());
            //SSLContext sslContext = SSLContexts.custom().loadKeyMaterial(keyStore,KEYSTORE_PASSWORD.toCharArray())
                   // .loadTrustMaterial(null, new TrustSelfSignedStrategy())
                    //.build();
            SSLContext sslContext = SSLContex
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值