前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于物流快递单号查询API接口的实现

关于物流快递单号查询API接口的实现

原创
作者头像
app玩家
修改2021-05-24 10:48:16
9440
修改2021-05-24 10:48:16
举报
文章被收录于专栏:快递接口

之前有做的公司项目需要用到物流查询的接口,我在网上找了挺多的资料,后来自己整理了一下,具体的实现步骤如下

之前有介绍过一些单号接口的应用, 在这里介绍一下快递鸟查询接口的简单应用,再次封装一个cURL发送方法写出:如果不想用这个函数,也可以使用file_get_content() 方法效果一致。在这里,我们来使用cURL方法来实现

(一)接入流程:

1>.注册账号,

API_ID:XXXXXX

API_KEY:XXXXXXXXXXXXXXXXXX

2>.服务申请

在个人中心里面申请需要的服务,即时查询功能有免费的服务

3>.对接服务

写自己的业务逻辑----本文主体

4>.测试代码

5>.正式使用

项目搭建

打开Eclipse,创建一个Dynamic Web Project ,命名KDAPI。

可根据自己的需求,建立以下的几个文件:

其中KdniaoTrackQueryApi中的文件是我们从官方进行下载的即时查询的demo源文件,直接进行复制即可,不过在后续我们会对其进行一些更改。

我们把KdniaoTrackQueryApi中的main方法剪切并粘贴在Query文件中,输入一个快递公司的编码和快递号进行查询,并查看结果。

这个时候的结果很显然是不尽人意的,因为JSON的形式不利于用户的观看,所以我们在web查询页面进行展示的时候,还需要对其进行转变,使普通用户也可以很方便的查看快递信息。

所以我们再来对KdniaoTrackQueryApi文件中的getOrderTracesByJson方法进行改造。删除最后的return result,并添加如下代码:

代码语言:javascript
复制
String show = "";
        try {
            JSONObject obj = JSONObject.parseObject(result);

            boolean bool = obj.getBooleanValue("Success");

            if (!bool) {
                show = "暂时无法查询到该物流轨迹信息。";
            } else {
                JSONArray arr = obj.getJSONArray("Traces");
                for (int i = 0; i < arr.size(); i++) {
                    JSONObject o = (JSONObject) arr.get(i);
                    show = show + o.getString("AcceptTime") + "<br/>";
                    show = show + o.getString("AcceptStation") + "<br/><br/>";
                }
            
            }
        }catch (Exception e) {
            e.printStackTrace();
        }        
        return show;

之后,基本就可以正常显示了。

由于用户ID和API秘钥比较私密(如果你花钱购买了增值服务的话),所以就需要用一个api.properties文件存储我们的信息,然后在文件中读取即可。

以上内容完成后,我们就可以创建一个Servlet文件来处理请求了。

那么请求都应该包含哪些内容呢?根据快递鸟官方提供的即时查询的API,我们可以发现只需要提供两个内容即可——快递公司编码和快递单号,那么前端的布局就产生了。

建立index.jsp,在jsp文件中创建一个表单(用来把数据传到Servlet中,因为目前我只会这一种传输方法,所以就只能用这个了),嵌套一个input的text输入传输快递单号。

因为我们是试用版的用户,所以我们只有四种快递可以选,那么我们就选择四个单选按钮来传输快递公司的值。

接受这些内容之后,我们在Servlet中执行以下方法即可:

代码语言:javascript
复制
response.setContentType("text/html;charset=utf-8");
       KdniaoTrackQueryAPI api = new KdniaoTrackQueryAPI();
       String expCode = request.getParameter("type");
       String expNo = request.getParameter("searchArea");
       String res = null;
       try {
           res = api.getOrderTracesByJson(expCode, expNo);
       } catch (Exception e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
       response.getWriter().write(res);

效果展示

圆通快递

韵达快递

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档