/**
* http请求封装类
*/
public class HttpUtils {
/**
*
* @param url 请求的URL
* @param params 请求的参数
* @return
*/
public static Object sendGetRequest(String host,String path,HttpHeaders headers , Map<String,String> params){
RestTemplate client = new RestTemplate();
HttpMethod method = HttpMethod.GET;
//将请求头部和参数合成一个请求
HttpEntity<Void> requestEntity = new HttpEntity<>(headers);
//执行HTTP请求,将返回的结构使用ResultVO类格式化
ResponseEntity response = null;
try {
response = client.exchange(buildUrl(host,path,params), method, requestEntity,String.class);
}catch (Exception e){
e.printStackTrace();
}
return response.getBody();
}
private static String buildUrl(String host, String path, Map<String, String> querys) throws UnsupportedEncodingException {
StringBuilder sbUrl = new StringBuilder();
sbUrl.append(host);
if (!StringUtils.isBlank(path)) {
sbUrl.append(path);
}
if (null != querys) {
StringBuilder sbQuery = new StringBuilder();
for (Map.Entry<String, String> query : querys.entrySet()) {
if (0 < sbQuery.length()) {
sbQuery.append("&");
}
if (StringUtils.isBlank(query.getKey()) && !StringUtils.isBlank(query.getValue())) {
sbQuery.append(query.getValue());
}
if (!StringUtils.isBlank(query.getKey())) {
sbQuery.append(query.getKey());
if (!StringUtils.isBlank(query.getValue())) {
sbQuery.append("=");
sbQuery.append(URLEncoder.encode(query.getValue(), "utf-8"));
}
}
}
if (0 < sbQuery.length()) {
sbUrl.append("?").append(sbQuery);
}
}
return sbUrl.toString();
}
public JSONArray sendCmssBody(SendCmssBody sendCmssBody) { if (StringUtils.isEmpty(redisTemplateService.get(sendCmssBody.getNu()))){ Map<String,String> queryMap = new HashMap<>(); queryMap.put("com",sendCmssBody.getCom()); queryMap.put("nu",sendCmssBody.getNu()); HttpHeaders handler = new HttpHeaders(); handler.add("Authorization","APPCODE "+appCode); Object o = HttpUtils.sendGetRequest(url,"/showapi_expInfo",handler,queryMap); JSONObject parse = (JSONObject) JSONObject.parse(o.toString()); JSONObject showapi_res_body = parse.getJSONObject("showapi_res_body"); JSONArray data = showapi_res_body.getJSONArray("data"); System.out.println(data.toString()); //转Unicode String unicode = UtilsUnicode.stringToUnicode(data.toString()); redisTemplateService.set(sendCmssBody.getNu(),unicode); redisTemplateService.expire(sendCmssBody.getNu(),10); logger.info("保存成功"); return data; }else { String info= redisTemplateService.get(sendCmssBody.getNu()); String unicode = UtilsUnicode.unicodeToString(info); logger.info(unicode); logger.info("查询成功"); return (JSONArray)JSONArray.parse(unicode); } }