• 获取圆通的物流信息


    圆通的接口:http://www.yto.net.cn/api/trace/waybill

    请求方式

     

    下面是java请求示例

     1     /**
     2      * 根据物流单号查询圆通的物流
     3      * @param request
     4      * @return
     5      */
     6     @ResponseBody
     7     @RequestMapping("/logisticsByWaybillYTO")
     8     public LogisticsInfo logisticsByWaybillYTO(HttpServletRequest request){
     9         LogisticsInfo logisticsInfo = new LogisticsInfo();
    10         String waybillNo = request.getParameter("waybillCode");// 要查询的快递单号,请勿带特殊符号,不支持中文(大小写不敏感)
    11         if (StringUtils.isBlank(waybillNo)) {
    12             log.warn("快递单号不能为空----->waybillNo:" + waybillNo);
    13             logisticsInfo.setState(1);
    14             return logisticsInfo;
    15         }
    16         try {
    17 
    18             Map<String,String> header = new HashMap<>();
    19             header.put("Content-Type","application/x-www-form-urlencoded");
    20             Map<String,String> body = new HashMap<>();
    21             body.put("waybillNo",waybillNo);
    22             String postURL = HttpUtils.httpPostWithForm(YTOURL,header,body);
    23             YTOLogisticsEntity ytoENtity =  JSON.parseObject(postURL, YTOLogisticsEntity.class);
    24             log.warn("圆通返回的物流信息:------>"+postURL);
    25             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    26             //将物流信息转为LogisticsInfo类进行返回
    27             List<YTOLogisticsInfo.data> traces = ytoENtity.getData().get(0).getTraces();
    28             List<LogisticsInfo.Info> ytInfo= new ArrayList<>();
    29             for (YTOLogisticsInfo.data  t : traces){
    30                 LogisticsInfo.Info info = new LogisticsInfo.Info();
    31                 info.setOpeTime(sdf.format(t.getTime()));
    32                 if (null!=t.getStationName()){
    33                     info.setOpeTitle(t.getStationName());
    34                 }
    35                 info.setOpeRemark(t.getInfo());
    36                 ytInfo.add(info);
    37             }
    38             logisticsInfo.setCourier(traces.get(0).getName());
    39             logisticsInfo.setCourierTel(traces.get(0).getMobile());
    40             logisticsInfo.setInfo(ytInfo);
    41         }catch (Exception e){
    42             log.error("获取查询物流跟踪消息 的返回值过程中出错", e);
    43             logisticsInfo.setState(1);
    44             return logisticsInfo;
    45         }
    46         if (logisticsInfo.getInfo().size()<1){
    47             log.info("获取查询物流跟踪消息无返回值");
    48             logisticsInfo.setState(1);
    49         }
    50         return logisticsInfo;
    51     }
  • 相关阅读:
    linux命令---常用stty的命令
    Linux命令--- /dev/null和/dev/tty
    linux---正则表达式
    linux命令---shell脚本调试
    linux命令---wc
    linux命令---head与tail
    javascrit2.0完全参考手册(第二版) 第1章第2节:javascript的历史和使用
    javascrit2.0完全参考手册(第二版) 第1章第1节 在XHTML文档中增加javascript
    (JavaScript 2.0: The Complete Reference, Second Edition)javascript 2.0完全手册第二版 翻译说明
    采用EntityFramework.Extended 对EF进行扩展
  • 原文地址:https://www.cnblogs.com/yyKong/p/11477284.html
Copyright © 2020-2023  润新知