httpclient 关闭连接池中无效连接

2016-03-17|来源:

httpclient 关闭连接池中无效连接的思路使用一个单独的线程完成连接池中的无效链接的清理,其中线程中通过HttpClientConnectionManager 的 closeExpiredConnections 方法来关闭无效连接


示例:

package com._656463.httpclient;
 
import org.apache.http.conn.HttpClientConnectionManager;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
 
public class ClientEvictExpiredConnections {
 
    public static void main(String[] args) throws Exception {
        PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
        // 设置最大连接数
        cm.setMaxTotal(200);
        // 设置每个主机地址的并发数
        cm.setDefaultMaxPerRoute(20);
 
        new IdleConnectionEvictor(cm).start();
    }
 
    public static class IdleConnectionEvictor extends Thread {
 
        private final HttpClientConnectionManager connMgr;
 
        private volatile boolean shutdown;
 
        public IdleConnectionEvictor(HttpClientConnectionManager connMgr) {
            this.connMgr = connMgr;
        }
 
        @Override
        public void run() {
            try {
                while (!shutdown) {
                    synchronized (this) {
                        wait(5000);
                        // 关闭失效的连接
                        connMgr.closeExpiredConnections();
                    }
                }
            } catch (InterruptedException ex) {
                // 结束
            }
        }
 
        public void shutdown() {
            shutdown = true;
            synchronized (this) {
                notifyAll();
            }
        }
    }
}

本文参考网络

相关问答

更多

java HttpClient设置代理的话,用户名和密码怎么设置?

使用代理需要导入:commons-logging-1.1.jar,httpclient-4.0-beta2.jar ,httpcore-4.1-alpha1.jar 和 commons-codec-1.4.jar架包。 在连接代理时需要使用用户名和密码构造UsernamePasswordCredentials对象并作为参数传递给HttpClient对象。 具体用法如下: public static void main(String args[]) { StringBuffer sb = new S ...

spring怎么管理apache的httpclient连接

这个和spring无关,数据库连接池也是使用如dbcp、c3p0、proxool、druid等 Xml代码 ConnectionManager" class="org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager" destroy-method="shutdown"> utf8"> 那个MyHttpParameters类, Java代码 public class MyHttpParameters extends BasicHttpP ...

Java Web项目,httpclient模拟登录

管他什么调取的,只要有数据返回,就可以解析数据了

Java中的httpclient4.5应该怎么使用

一、所需要的jar包 httpclient-4.5.jar httpcore-4.4.1.jar httpmime-4.5.jar 二、实例 Java代码 package cn.tzz.apache.httpclient; import java.io.File; import java.io.IOException; import java.net.URL; import java.util.ArrayList; import java.util.List; import java.util.M ...

java如何用httpclient从webservice获取数据

下面是一个获取天气的例子: import java.io.*; import java.net.*; public class test{ public static void main(String[] args) throws Exception { URL url = new URL("http://www.webservicex.net/globalweather.asmx/GetWeather?CityName=guangzhou&CountryName=china");//要调用的ur ...

专题教程

JAVA概述
第一部分:java入门基础
第二部分:java常用类
第三部分:jdbc系列教程
第四部分:java高级特征
Gson教程
快速了解 jdk8 新特征

相关文章

更多

最近更新

更多