1、service层
@Service
@Slf4j
public class WXService {
@Resource
private RestTemplate restTemplate;
/**
* 获取Headers
* @return HttpHeaders 头部信息
*/
public HttpHeaders getHeaders(int type) {
HttpHeaders headers = new HttpHeaders();
MediaType mediaType = MediaType.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(mediaType);
//0为token 1为其他
if (CommonConstant.DATA_INT_0 == type) {
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
}
headers.add("accept", "application/json");
return headers;
}
/**
* 发送数据
* @param url 请求接口地址
* @param headers 请求头
* @param t 请求体参数
* @param type 请求方式
* @return 返回值
*/
public String postHeadersT(String url, HttpHeaders headers, Object t, HttpMethod type) {
try {
log.info("restTemplate 接口,url:" + url);
HttpEntity<Object> entity;
if (t != null) {
entity = new HttpEntity<>(t, headers);
} else {
entity = new HttpEntity<>(headers);
}
ResponseEntity<String> responseEntity;
//将请求头部和参数合成一个请求
responseEntity = restTemplate.exchange(url, type, entity, String.class);
//执行HTTP请求,将返回的结构使用ResultVO类格式化
String resultData = responseEntity.getBody();
log.info("返回数据:" + JSON.toJSONString(resultData));
// if (StringUtils.isNotBlank(resultData)) {
// JSONObject parseObject = JSONObject.parseObject(resultData);
// if (parseObject != null && !parseObject.isEmpty()) {
// if (CommonConstant.DATA_STR_0.equals(parseObject.get(CommonConstant.REST_TEMPLATE_RESULT_CODE).toString())
// || CommonConstant.DATA_STR_200.equals(parseObject.get(CommonConstant.REST_TEMPLATE_RESULT_CODE).toString())){
// return resultData;
// }
// }
// }
return resultData;
} catch (Exception e) {
log.error("发送数据异常,url为" + url + "异常原因为:" + e);
return null;
}
}
}
WXServiceExt层 code换取openid 为例子
@Service
@Slf4j
public class WXServiceExt extends WXService {
@Value("${wx.appid}")
String appid;
@Value("${wx.secret}")
String secret;
public JSONObject sendWX(String code) {
String url = "https://api.weixin.qq.com/sns/jscode2session?appid="+appid+"&secret="+secret+"&js_code="+code+"&grant_type=authorization_code";
String resultData = postHeadersT(url, getHeaders(CommonConstant.DATA_INT_1), null, HttpMethod.GET);
JSONObject parseObject = JSONObject.parseObject(resultData);
return parseObject;
}
}