依赖
<!--httpclient-->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.8</version>
</dependency>
代码:
package com.jkys.crm.utils;
import com.alibaba.fastjson.JSON;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Locale;
import java.util.Map;
import java.util.ResourceBundle;
public class DataHubServiceUtil {
/***
* datahubService.
*
*/
private final static Logger logger = LoggerFactory.getLogger(DataHubServiceUtil.class);
public static String queryAllDataMap(Map<String,Object> jsonMap, Long dataHubId, HttpServletRequest request) throws IOException {
//获取web路劲下的配置(访问url)
ResourceBundle bundle=ResourceBundle.getBundle("application", Locale.CHINA);
String url = bundle.getString("drugStoreUrl")+dataHubId;
//httpclient
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
// 创建Post请求
HttpPost httpPost = new HttpPost(url);
//请求Content-Type:内容体
httpPost.setHeader("Content-Type", "application/json;charset=utf8");
httpPost.setHeader("Referer", request.getHeader("Referer"));
//添加cookie 形如Cookie: crm_new_cheat_user=858; _JKYS_DAILY_E_SESSION_ID=b7e0f2a876b4ff060a5c737ab2ace157cc815c37; _JKYS_E_SESSION_ID=28d07d3a07432a604c795a727b5f11de4a45851e; JSESSIONID=0FFB53AB2E7009D898FEB398E3788D2F
Cookie[] cookies = request.getCookies();
StringBuffer sb = new StringBuffer();
for(int i=0;i<cookies.length;i++){
sb.append(cookies[i].getName()+"="+cookies[i].getValue());
if(i !=cookies.length-1){
sb.append(";");
}
}
httpPost.addHeader("Cookie",sb.toString());
logger.info("获取到cookie:"+sb.toString() );
//将map转化成json字符串
String jsonString = JSON.toJSONString(jsonMap);
//添加页面参数
StringEntity entity = new StringEntity(jsonString, "UTF-8");
// post请求是将参数放在请求体里面传过去的;这里将entity放入post请求体中
httpPost.setEntity(entity);
// 响应模型(由客户端执行(发送)Post请求)
CloseableHttpResponse response = httpClient.execute(httpPost);
// 从响应模型中获取响应实体
HttpEntity responseEntity = response.getEntity();
logger.info("响应状态为:" + response.getStatusLine());
if (responseEntity != null) {
logger.info("响应内容长度为:" + responseEntity.getContentLength());
String responseStr = EntityUtils.toString(responseEntity, StandardCharsets.UTF_8);
logger.info("响应内容为:" + responseStr);
return responseStr;
}
return null;
}
}
在这里插入代码片