JAVA+RestTemplate 发起Http请求接收JSON 和XML 格式报文处理

工程架构: 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 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 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;
  }

你可能感兴趣的:(StringBoot)