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<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;
  }
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值