工程架构: SpringBoot 2.2.1.RELEASE
通过RestTemplate 发起Http请求,并接收JSON格式的返回值和XML返回值;
GET请求带参传递(返回JSON格式):
通过{}为URL 注入参数,返回值用String接收在进行JSON转对象处理
public XiDaoHttpResult getXiDaoData() {
RestTemplate restTemplate = new RestTemplate();
String url = "http://xxxxx:xxxx?end_date_time={end_date_time}&start_date_time={start_date_time}";
HttpHeaders headers = new HttpHeaders();
MediaType type = MediaType.parseMediaType("application/json; charset=GBK");
headers.setContentType(type);
Map<String, String> param = new HashMap<>();
// 设置开始时间和结束时间 开始时间为当天的0点,结束时间为当前时间
String startTime = DateUtil.DateFormatting("yyyy-MM-dd HH:mm:ss", DateUtil.initDateByDay());
String endTime = DateUtil.DateFormatting("yyyy-MM-dd HH:mm:ss", new Date());
param.put("end_date_time", endTime);
param.put("start_date_time", startTime);
String forObject = restTemplate.getForObject(url, String.class, param);
XiDaoHttpResult xiDaoHttpResult = JSONObject.parseObject(forObject.toLowerCase(), XiDaoHttpResult.class);
return xiDaoHttpResult;
}
GET请求带参传递(返回XML格式):
通过{}为URL 注入参数,返回值用String接收在进行字符串转XML转对象处理
public String getTianYaHaiJiaoData() {
RestTemplate restTemplate = new RestTemplate();
String startTime = DateUtil.DateFormatting("yyyy-MM-dd HH:mm:ss", DateUtil.initDateByDay());
String endTime = DateUtil.DateFormatting("yyyy-MM-dd HH:mm:ss", new Date());
Map<String, String> param = new HashMap<>();
param.put("startDate", startTime);
param.put("endDate", endTime);
String mySign = SignUtil.buildMysign(param, KEY);
param.put("sign", mySign);
return restTemplate.getForObject(URL, String.class, param);
}
/**
* 将XML字符串转为对象
*
* @param xml
* @return com.syiti.dev.sssy.entity.TianYaHaiJiaoHttpResult
* @author LinYoufeng
* @date 16:14 2019/11/26
**/
public TianYaHaiJiaoHttpResult parseXmlStr(String xml) {
TianYaHaiJiaoHttpResult tianYaHaiJiaoHttpResult = new TianYaHaiJiaoHttpResult();
// 将字符串转化为XML文档对象
Document document = null;
try {
document = DocumentHelper.parseText(xml);
} catch (DocumentException e) {
e.printStackTrace();
}
// 获得文档的根节点
Element root = document.getRootElement();
// 遍历根节点下所有子节点
Iterator<?> iter = root.elementIterator();
while (iter.hasNext()) {
Element ele = (Element) iter.next();
if ("code".equals(ele.getName())) {
tianYaHaiJiaoHttpResult.setCode(Integer.valueOf(ele.getText()));
}
if ("saleTicketPersonSum".equals(ele.getName())) {
tianYaHaiJiaoHttpResult.setSaleTicketPersonSum(Integer.valueOf(ele.getText()));
}
if ("checkTicketPersonSum".equals(ele.getName())) {
tianYaHaiJiaoHttpResult.setCheckTicketPersonSum(Integer.valueOf(ele.getText()));
}
}
return tianYaHaiJiaoHttpResult;
}