httpClientUtil

1.依赖jar

<!-- httpClient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.3</version>
</dependency>

2.代码

  

 1 package com.hshc.util;
 2 
 3 import com.hshc.common.constant.QueryAttrConstant;
 4 import com.hshc.web.ucp.model.vo.HttpClientVo;
 5 import lombok.extern.slf4j.Slf4j;
 6 import org.apache.commons.lang3.StringUtils;
 7 import org.apache.http.HttpEntity;
 8 import org.apache.http.HttpResponse;
 9 import org.apache.http.client.config.RequestConfig;
10 import org.apache.http.client.methods.HttpPost;
11 import org.apache.http.entity.StringEntity;
12 import org.apache.http.impl.client.CloseableHttpClient;
13 import org.apache.http.impl.client.HttpClients;
14 import org.apache.http.util.EntityUtils;
15 
16 import java.io.IOException;
17 
18 /**
19  * @author ldg
20  * @Description: HttpClient工具类
21  * @date 2018/9/29 上午10:31
22  */
23 @Slf4j
24 public class HttpClientUtil {
25 
26     private static  final String APPID = PropertiesUtil.getProperty("detection.query.appId");
27 
28     private static final int RES_FAIL_CODE = 500; //失败响应码
29     /**
30    *post35      */
36     public static  HttpClientVo postHttp(String url,String sign,String para){
37         //创建httpClient对象
38         CloseableHttpClient httpCilent = HttpClients.createDefault();
39 
40         //创建http配置对象
41         RequestConfig requestConfig = RequestConfig.custom()
42                 .setConnectTimeout(10000)   //连接目标超时
43                 .setConnectionRequestTimeout(10000) // 从连接池获取连接超时
44                 .setSocketTimeout(10000) //等待响应超时
45                 .setRedirectsEnabled(true)//默认允许自动重定向
46                 .build();
47 
48         //创建post请求对象
49         HttpPost httpPost = new HttpPost(url);
50         httpPost.setConfig(requestConfig);
51         httpPost.addHeader("APPID",APPID );
52         httpPost.addHeader("SIGN",sign);
53 
54         if(!StringUtils.isEmpty(para)){
55 
56         StringEntity stringEntity = new StringEntity(para, "UTF-8");//解决中文乱码问题
57         stringEntity.setContentEncoding("UTF-8");
58         stringEntity.setContentType("application/json");
59         httpPost.setEntity(stringEntity);
60         }
61 
62         httpPost.addHeader("Content-type", "application/json; charset=utf-8");
63 
64         //返回结果对象
65         HttpClientVo httpClientVo = HttpClientVo.getHttpClientVo();
66         //处理返回结果
67         try {
68             HttpResponse httpResponse = httpCilent.execute(httpPost);
69 
70             if(httpResponse.getStatusLine().getStatusCode() == QueryAttrConstant.HTTP_SUCCESS_CODE){
71 
72                 httpClientVo.setCode(QueryAttrConstant.HTTP_SUCCESS_CODE);
73                 httpClientVo.setRusultStr(EntityUtils.toString(httpResponse.getEntity()));//获得返回的结果
74 
75             }else{
76 
77                 //第三方响应失败
78                 httpClientVo.setCode(RES_FAIL_CODE);
79                 log.error("http请求第三方响应失败");
80 
81             }
82         } catch (IOException e) {
83             httpClientVo.setCode(RES_FAIL_CODE);
84             log.error("HttpClientUtil-getRulesbyHttp连接时异常",e);
85         }finally {
86             try {
87                 //关闭链接
88                 httpCilent.close();
89             } catch (IOException e) {
90                 log.error("HttpClientUtil-getRulesbyHttp关闭连接时异常",e);
91             }
92         }
93 
94         return httpClientVo;
95     }
96 
97
//get
private String getHttpGetData(String url){
log.info("car300 url=[{}]",url);
String result = StringUtils.EMPTY;
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet(url);
httpGet.addHeader("kdj-token", token);
httpGet.setConfig(RequestConfig.custom().setConnectTimeout(3000).build());

try {
CloseableHttpResponse response = httpClient.execute(httpGet);
int status = response.getStatusLine().getStatusCode();
if (status == HttpStatus.SC_OK){
HttpEntity responseEntity = response.getEntity();
result = EntityUtils.toString(responseEntity, "UTF-8");
}
} catch (Exception e) {
log.error("car300 url=[{}], is error",url, e);
}
log.info("car300 url=[{}], result={}",url,result);
return result;
}
98 99 }

3.调用

  




原文地址:https://www.cnblogs.com/beixiaoyi/p/11150841.html