发送http get请求,并返回相应内容

public static <T>  T  executeGetRequest(String url,Map<String,String> headers,Map<String,String> params,HttpEntityHandler<T> handler){
		
	//  创建发起请求的 client对象                             
	CloseableHttpClient  client = HttpClients.createDefault();
	//  服务端响应对象             
	CloseableHttpResponse response = null;
	try{
		String effectiveUrl = url;
		//  由于发送Get请求,所以把参数附加到url上      
		if(params != null && params.size() > 0){
			//   这里使用uriBuilder构建查询字符串                  
			URIBuilder builder = new URIBuilder();
			for(Map.Entry<String,String> entry : params.entrySet()){
				builder.addParameter(entry.getKey(), entry.getValue());
			}
			effectiveUrl += builder.toString();
		}
			   
		HttpGet request = new HttpGet(effectiveUrl);
		//  设置请求连接超时时间         
		request.setConfig(DEFAULT_REQUEST_CONFIG);
		//  设置请求头                   
		if(headers != null){
			for(Map.Entry<String,String> entry : headers.entrySet()){
				request.addHeader(entry.getKey(),entry.getValue());
			}
		}
			   
		// 发起http请求,并返回响应         
		response = (CloseableHttpResponse) client.execute(request);
		// 处理服务端响应       
		T object = handler.handleHttpEntity(response);
		return object;
	}catch(Exception e){
		logger.error("http post请求失败",e); 
		throw new RuntimeException("http get请求失败",e); 
	}finally{
		if(response != null){
			try {
				response.close();
			} catch (IOException e) {
				logger.error("http get请求后,关闭输入流失败 ",e);
			}
		}
			   
		if(client != null){
			try {
				client.close();
			} catch (IOException e) {
				logger.error("http get请求后,关闭连接失败 ",e);
			}
		}	   
	}
}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值