zoukankan      html  css  js  c++  java
  • httpclient: 设置连接池及超时配置,请求数据:PoolingHttpClientConnectionManager

    public static void main(String[] args) throws Exception{
    		//httpclient连接池
    		
    		//创建连接池
    		PoolingHttpClientConnectionManager cManager = new PoolingHttpClientConnectionManager();
    		//设置最大连接数
    		cManager.setMaxTotal(50);
    		//设置每个主机地址的并发数
    		cManager.setDefaultMaxPerRoute(20);
    		
    		//执行i请求
    		doGet(cManager);
    	}
    
    	
    	private static void doGet(PoolingHttpClientConnectionManager cm) throws Exception{
    		//从连接池获取连接,每次不一样
    		CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(cm).build();
    		//设置http get
    		HttpGet httpGet = new HttpGet("https://www.baidu.com");
    		//设置请求参数
    		RequestConfig config = RequestConfig.custom().setConnectTimeout(5000) //连接超时时间
    				.setConnectionRequestTimeout(500) //从线程池中获取线程超时时间
    				.setSocketTimeout(8000) //设置数据超时时间
    				.setStaleConnectionCheckEnabled(true) //提交请求前检查连接是否可用
    				.build();
    		
    		httpGet.setConfig(config);
    		
    		//返回数据
    		CloseableHttpResponse response = null;
    		
    		try {
    			response = httpClient.execute(httpGet);
    			String con = EntityUtils.toString(response.getEntity(), "utf-8");
    			System.out.println(con);
    		}finally{
    			if(response!=null){
    				response.close();
    			}
    			httpClient.close();
    		}
    		
    	}
    

      

  • 相关阅读:
    Visual Source Safe的使用方法
    二十道经典C#面试题
    C#中转义符
    在自己迷惑的时候,提醒自己
    C#中多态
    C#重载和重写
    DataTable定义
    C#怎么调用方法
    mysql数据类型——字符串char(m)和varchar(m)
    mysql数据类型——时间类型
  • 原文地址:https://www.cnblogs.com/achengmu/p/11094329.html
Copyright © 2011-2022 走看看