java实现物流查询(使用阿里云物流查询接口)

java实现物流查询(使用阿里云物流查询接口)获取所有物流的编码 其实不传编码依旧可以查到 95 能自动检测 但是为了百分百保证查到准确的建议传入当前的物流编码 如 中通 zto 首先进行购买阿里云快递物流查询接口 有免费的 测试的话大家可以购买免费的 非常方便 查询时 获取当前订单 当前订单的发货单号 以及物流编码查询详细的物流详情 购买完成后 点击进入自己的控制台 以及上方提供的接口详情 点进去复制直接用即可 应记录商品的发货单号 以及物流编码存入数据库中 逻辑如下 当发货人员发完货物 代码中包含 查询物流的编码

快递物流查询接口【最新版】_快递查询_数据API_电商-云市场-阿里云 (aliyun.com)

首先进行购买阿里云快递物流查询接口,有免费的,测试的话大家可以购买免费的,非常方便。

java实现物流查询(使用阿里云物流查询接口)

 购买完成后,点击进入自己的控制台。就可以看到自己需要的参数数据:

java实现物流查询(使用阿里云物流查询接口)

以及上方提供的接口详情,点进去复制直接用即可。 

 java实现物流查询(使用阿里云物流查询接口)

对应的接口信息都有,只需对应放入所需参数即可使用。 

java实现物流查询(使用阿里云物流查询接口)

 JAVA代码实现:

获取所有物流的编码,其实不传编码依旧可以查到,95%能自动检测,但是为了百分百保证查到准确的建议传入当前的物流编码:如:中通 —>  zto

代码中包含,查询物流的编码

逻辑如下:当发货人员发完货物,应记录商品的发货单号,以及物流编码存入数据库中

查询时,获取当前订单,当前订单的发货单号,以及物流编码查询详细的物流详情。

import com.alibaba.fastjson2.JSONObject; import com.furnish.web.wn.vo.R; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.UnknownHostException; import java.util.List; import java.util.Map; @RestController @RequestMapping("/wnapp/wl") @CrossOrigin public class WuLiuController { / * 采用阿里云快递物流查询接口 ================ * @param */ @GetMapping ("/getWl") public String getWl(String no,String phone ,String type) {//物流码【4】请求参数,不知道可不填 95%能自动识别 //传过来电话的后四位 String host = "https://kdwlcxf.market.alicloudapi.com";// 【1】请求地址 支持http 和 https 及 WEBSOCKET String path = "/kdwlcx";// 【2】后缀 //TODO 测试用AppCode 后期需更改正式的 String appcode = ""; // 【3】开通服务后 买家中心-查看AppCode no = no+":"+phone; // 【4】请求参数,物流单号+电话后四位 String urlSend = host + path + "?no=" + no + "&type=" + type; // 【5】拼接请求链接 try { URL url = new URL(urlSend); HttpURLConnection httpURLCon = (HttpURLConnection) url.openConnection(); httpURLCon.setRequestProperty("Authorization", "APPCODE " + appcode);// 格式Authorization:APPCODE // (中间是英文空格) int httpCode = httpURLCon.getResponseCode(); if (httpCode == 200) { String json = read(httpURLCon.getInputStream()); // System.out.println("正常请求计费(其他均不计费)"); // System.out.println("获取返回的json:"); // System.out.print(json); return json; } else { Map 
  
    > map = httpURLCon.getHeaderFields(); String error = map.get("X-Ca-Error-Message").get(0); if (httpCode == 400 && error.equals("Invalid AppCode `not exists`")) { System.out.println("AppCode错误 "); } else if (httpCode == 400 && error.equals("Invalid Url")) { System.out.println("请求的 Method、Path 或者环境错误"); } else if (httpCode == 400 && error.equals("Invalid Param Location")) { System.out.println("参数错误"); } else if (httpCode == 403 && error.equals("Unauthorized")) { System.out.println("服务未被授权(或URL和Path不正确)"); } else if (httpCode == 403 && error.equals("Quota Exhausted")) { System.out.println("套餐包次数用完 "); } else if (httpCode == 403 && error.equals("Api Market Subscription quota exhausted")) { System.out.println("套餐包次数用完,请续购套餐"); } else { System.out.println("参数名错误 或 其他错误"); System.out.println(error); } } } catch (MalformedURLException e) { return "URL格式错误"; } catch (UnknownHostException e) { return "URL地址错误"; } catch (Exception e) { // 打开注释查看详细报错异常信息 // e.printStackTrace(); } return ""; } / * 查询物流编码 * @param type */ @GetMapping ("/getType") @ApiOperation("查询物流的公司编码") public String main(String type) { String host = "https://kdwlcxf.market.alicloudapi.com";// 【1】请求地址 支持http 和 https 及 WEBSOCKET String path = "/cExpressLists";// 【2】后缀 //TODO 个人测试用的,后续需更改正式的 String appcode = ""; // 【3】开通服务后 买家中心-查看AppCode String urlSend = host + path + "?type=" + type; // 【5】拼接请求链接 try { URL url = new URL(urlSend); HttpURLConnection httpURLCon = (HttpURLConnection) url.openConnection(); httpURLCon.setRequestProperty("Authorization", "APPCODE " + appcode);// 格式Authorization:APPCODE // (中间是英文空格) int httpCode = httpURLCon.getResponseCode(); if (httpCode == 200) { String json = read(httpURLCon.getInputStream()); System.out.println("正常请求计费(其他均不计费)"); System.out.println("获取返回的json:"); System.out.print(json); return json; } else { Map 
   
     > map = httpURLCon.getHeaderFields(); String error = map.get("X-Ca-Error-Message").get(0); if (httpCode == 400 && error.equals("Invalid AppCode `not exists`")) { System.out.println("AppCode错误 "); } else if (httpCode == 400 && error.equals("Invalid Url")) { System.out.println("请求的 Method、Path 或者环境错误"); } else if (httpCode == 400 && error.equals("Invalid Param Location")) { System.out.println("参数错误"); } else if (httpCode == 403 && error.equals("Unauthorized")) { System.out.println("服务未被授权(或URL和Path不正确)"); } else if (httpCode == 403 && error.equals("Quota Exhausted")) { System.out.println("套餐包次数用完 "); } else if (httpCode == 403 && error.equals("Api Market Subscription quota exhausted")) { System.out.println("套餐包次数用完,请续购套餐"); } else { System.out.println("参数名错误 或 其他错误"); System.out.println(error); } } } catch (MalformedURLException e) { System.out.println("URL格式错误"); } catch (UnknownHostException e) { System.out.println("URL地址错误"); } catch (Exception e) { // 打开注释查看详细报错异常信息 // e.printStackTrace(); } return ""; } /* * 读取返回结果 */ private static String read(InputStream is) throws IOException { StringBuffer sb = new StringBuffer(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line = null; while ((line = br.readLine()) != null) { line = new String(line.getBytes(), "utf-8"); sb.append(line); } br.close(); return sb.toString(); } } 
    
  

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205433.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午6:02
下一篇 2026年3月19日 下午6:02


相关推荐

  • Megacli基本操作

    Megacli基本操作1 常用命令 opt MegaRAID MegaCli MegaCli64 LDInfo Lall aALL 查 raid 级别 opt MegaRAID MegaCli MegaCli64 AdpAllInfo aALL 查 raid 卡信息 opt MegaRAID MegaCli MegaCli64 PDList aALL 查看硬盘信息 opt MegaRAID MegaCli MegaCli64 AdpBbuCmd aAll 查看电池信息 opt Mega

    2026年3月19日
    2
  • vue.js中created()与activated()的个人使用理解

    vue.js中created()与activated()的个人使用理解created():在创建vue对象时,当html渲染之前就触发;但是注意,全局vue.js不强制刷新或者重启时只创建一次,也就是说,created()只会触发一次;activated():在vue对象存活的情况下,进入当前存在activated()函数的页面时,一进入页面就触发;可用于初始化页面数据等…

    2025年7月23日
    5
  • elasticsearch painless脚本使用(附demo及painless API)

    Kibana提供了一些强大的方法,用于搜索和可视化Elasticsearch中存储的数据。为了实现可视化,Kibana会搜索Elasticsearchmapping中定义的field,并以图表的形式将它们作为选项呈现给用户。但是,如果你忘记在schema中将一个重要的值定义为单独的field会怎么样呢?或者,如果你想把两个field合并到一起该怎么办呢?这时就可以使用

    2022年4月7日
    289
  • Linux下的tar压缩解压缩命令使用

    Linux下的tar压缩解压缩命令使用tar参数:-c:建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的,通过gzip过滤归档-j:有bz2属性的,通过bzip2过滤归档-v:显示所有过程-Z:有compress属…

    2022年5月25日
    37
  • opencv实现imfill_使用opencv实现matlab中的imfill填充孔洞功能

    opencv实现imfill_使用opencv实现matlab中的imfill填充孔洞功能使用opencv实现matlab中的imfill填充孔洞功能,整体思路如下:1.首先给原始图像四周加一圈全0,并保存为另一幅图像2.使用floodFill函数给新图像进行填充,种子点设置为Point(0,0),填充颜色为全白。因为原始图像四周加了一圈0,因此使用floodFill填充之后,整个图像除了原始图像中内部的点是黑色之外其他地方全是白色。3.将填充之后…

    2025年11月8日
    8
  • npm、cnpm安装「建议收藏」

    npm、cnpm安装「建议收藏」01.npm安装1.node官网https://nodejs.org/zh-cn/2.安装教程https://www.cnblogs.com/goldlong/p/8027997.html01:双击安装02:可以使用默认路径,本例子中自行修改为d:\nodejs03:一路点Next04:点Finish完成05:打开CMD,检查是否正常06:再看看另…

    2022年10月15日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号