博客转载https://blog.csdn.net/shenzhennba/article/details/83051853
1、Java开发我们常常需要和第三方系统进行通信,通信的方式有多种,如
(1)dubbo
(2)webservice
(3)微服务
(4)CloseableHttpClient等
2、以CloseableHttpClient为例 设置思路
首先请求配置对象RequestConfig设置超时时间
然后设置到 HttpGet 或 HttpPost 请求方法对象
3、以CloseableHttpClient为例
package com.gbm.common.util; import org.apache.http.HttpEntity; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.servlet.http.HttpServletRequest; import java.io.IOException; public class HttpUtil { private static Logger logger = LoggerFactory.getLogger(HttpUtil.class); public static String HttpGet(String Url, String token){ String result=null; CloseableHttpClient httpclient = HttpClients.createDefault(); CloseableHttpResponse newresponse = null; try{ RequestConfig requestConfig = RequestConfig.custom().setConnectionRequestTimeout(120000) .setSocketTimeout(120000).setConnectTimeout(120000).build(); //设置2分钟超时 HttpGet httpget = new HttpGet(Url); httpget.setConfig(requestConfig); httpget.setHeader("token-Authorization", token); try{ newresponse = httpclient.execute(httpget); HttpEntity entity = newresponse.getEntity(); result = EntityUtils.toString(entity); }finally{ newresponse.close(); } }catch(Exception e){ logger.error("请求url:" + Url + "异常,异常信息:" + e.getMessage()); } finally { // 关闭连接,释放资源 try { httpclient.close(); } catch (IOException e) { logger.error("关闭CloseableHttpClient异常,异常信息:" + e.getMessage()); } } return result; } }