快递查询,快递100上有更多接口信息

1.快递查询的接口是 快递公司的code值+快递单号 进行的网络查询。第一步,怎么将快递公司的名字转换成code值,传递给接口。下面是快递公司以及对应的code值得xml文件。

<?xml version="1.0" encoding="utf-8"?>
<resources><!-- 快递公司对应代码 --><string-array name="ems_code"><item>yuantong</item><item>yunda</item><item>shentong</item><item>shunfeng</item><item>zhongtong</item><item>ems</item><item>zhaijisong</item><item>quanfengkuaidi</item><item>rufengda</item></string-array><!-- 快递公司名称 --><string-array name="ems_company"><item>圆通速递</item><item>韵达快运</item><item>申通快递</item><item>顺丰快递</item><item>中通速递</item><item>EMS</item><item>宅急送</item><item>全峰快递</item><item>如风达</item></string-array></resources>

2.解析xml文件,将获得的公司名变成code值传递给接口连接。

private String[] emsCommpany;//公司名称private String[] emsCode; // 公司编码名称
private String mCompany_Name;// 公司名称private String mCompany_Code;// 公司的编码:圆通快递----yuantong

emsCommpany = getResources().getStringArray(R.array.ems_company);emsCode = getResources().getStringArray(R.array.ems_code);mCompany_Code = emsCode[position].toString().trim();// 公司编号mCompany_Name = emsCommpany[position].toString().trim();// 公司名称

3.对网络进行连接,获取网络数据

/** 请加入: 查询前的网络判断 如果手机没有接入网络提示打开网络 如果网络正常再去进行查询 查询的时候 如果getResponseResult*/public static String getResponseResult(String httpurl, String format)throws IOException {URL geturl = new URL(httpurl);HttpURLConnection connection = (HttpURLConnection) geturl.openConnection();connection.setConnectTimeout(3000);// 连接服务器的超时时间connection.setReadTimeout(3000);// 从服务器读取数据的超时时间connection.connect();// 默认是GET请求int code = connection.getResponseCode();StringBuffer result = new StringBuffer();if (code == 200) {// 如果连接成功BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));String lines;while ((lines = reader.readLine()) != null) {result.append(lines);}reader.close();System.out.println("网络连接正常");connection.disconnect();} else {System.out.println("网络连接异常");connection.disconnect();}connection.disconnect();return result.toString();}

3.快递信息进行json数据解析

/*** 2 解析JSON 得到ExpressInfo对象* * @param jsonStr* @return*/public ExpressBean parseJSON(String jsonStr) {ExpressBean express = new ExpressBean();// 根据字符串得到JSON对象try {JSONObject jsonObj = new JSONObject(jsonStr);// 取出快递状态 dataJSONArray data = jsonObj.getJSONArray("data");// 循环取出JSON数组中的对象 得到每一条 快递状态StringBuffer sb = new StringBuffer();for (int i = 0; i < data.length(); i++) {sb.append(data.getJSONObject(i).getString("time").replace("&nbsp;", " ")).append(":").append(data.getJSONObject(i).getString("context").replace("&nbsp;", " ")).append("\n");}express.setOpt_message(sb.toString());// 把取出的快递状态赋值
String nu = jsonObj.getString("nu");express.setPost_id(nu);// 把取出的快递单号赋值
String company = jsonObj.getString("com");express.setCompany(company);// 把取出的快递公司赋值
System.out.println("查询到的信息:" + express.toString());// 设置一个快递查询的默认查询结果 默认为网络连接失败
            express.setRequestCode(Constants.NET_LINK_ERROR);// 3508999734} catch (JSONException e) {System.out.println("JSON解析异常");}return express;}

快递查询中Spinner的使用

除了常规的定义,注册绑定以外,最终要的操作就是在spinner列表中适配数据,以及重写onItemSelectedListener的监听事件

// 实例化spinnerprivate void initSpinner() {ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.ems_company,android.R.layout.simple_spinner_item);adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);spinner.setAdapter(adapter);spinner.setPrompt(getResources().getString(R.string.input_express_company));spinner.setOnItemSelectedListener(new SpinnerOnSelectedListener());}// 创建一个内部类通过公司名字找到对应的编号class SpinnerOnSelectedListener implements OnItemSelectedListener {@Overridepublic void onItemSelected(AdapterView<?> parent, View view,int position, long id) {// 根据点击的位置找到公司编码的位置mCompany_Code = emsCode[position].toString().trim();// 公司编号mCompany_Name = emsCommpany[position].toString().trim();// 公司名称Log.i("Info", "ems_code:" + mCompany_Code+mCompany_Name);}/*** 没有选择的时候,默认圆通快递*/@Overridepublic void onNothingSelected(AdapterView<?> parent) {mCompany_Code = "yuantong";}}

转载于:https://www.cnblogs.com/qiuge227/p/3780555.html

Android项目---快递查询相关推荐

  1. 基于android的快递查询项目源码

    本项目基于安卓的快递查询项目源码,学生毕设作品,使用了爱查快递的api接口,可以查询申通.EMS.顺风.圆通.中通.韵达.天天.汇通.全锋.德邦.宅急送等11中快递的单号信息,支持手动输入单号和扫描单 ...

  2. Android开源快递查询应用——小马快递

    小马快递 前言 这是我第一个独立完成的项目,时隔多年又把它拿出来重构了一下代码. 项目地址:github.com/wangchenyan- 有问题请提Issues 如果喜欢,欢迎Star! 简介 小马 ...

  3. android项目实现查询功能,Android实现归属地查询功能(示例代码)

    实现归属地查询大体有两种方法可以实现,一种是通过归属地API进行查询,另一种是查询本地数据库.两种方法各有优劣,最好结合起来使用,我本次采用的是查询数据库的方法.首先需要从网上下载归属地数据库call ...

  4. Android快递轨迹查询 “KD快递查询”

    天猫内部优惠券 git源码地址:http://git.oschina.net/892642257/KD csdn0分地址:http://download.csdn.net/detail/onlyone ...

  5. 微信小程序项目实战:快递查询-李宁-专题视频课程

    微信小程序项目实战:快递查询-1303人已学习 课程介绍         本课程主要介绍了scrollview布局,以及如何通过第三方API获取并处理数据. 课程收益     本课程主要介绍了如何实现 ...

  6. Android项目:手机安全卫士(9)—— 手机号码归属地查询

    Android项目:手机安全卫士(9)-- 电话号码归属地查询 1 综述 手机防盗功能已经开发完了,接下来开发一个高级工具功能,就是手机归属地查询,严格来讲,是查询手机号码的归属地.不过,由于用的号码 ...

  7. Android Studio期末大作业---快递管理APP快递查询APP

    快递管理APP 主要功能 主要实现功能:登录,注册,数据库的增删改查(新增快递,查询快递,修改快递信息,删除快递信息) 页面展示如下 登录注册 注册时会判断两次密码是否输入一致!!! 系统首页 两个按 ...

  8. 基于快递100 写的,快递查询快捷嵌入商城项目

    声明:此嵌入方式基于快递100 api 开发而成,不依赖快递100授权,如有侵权行为,请留言,我会尽快删除. 1.如何不依赖api授权,我参考以下网站: 电商网站接入快递查询 2.接下来上代码:kua ...

  9. 微信小程序(快递查询)

    阅读本博客需要对微信小程序有一个初步的理解可参照点我进行初步的了解 效果图 下面我们正式开始 第一步 查看目录结构并初步建立各个文件夹及在app.json中注册页面 不注册无法显示 我们这里只使用im ...

最新文章

  1. 发票打印不全不完整的解决方案(Win10)
  2. Microsoft.CSharp.CSharpCodeProvider
  3. python内核_python内核_python内核语言_python版本内核 - 云+社区 - 腾讯云
  4. Struts2教程9:实现自已的拦截器
  5. c++ primer note
  6. java 程序执行原理
  7. 1438. 绝对差不超过限制的最长连续子数组
  8. 计算字符串的相似度-两种解法
  9. 云呐|fsu动环监控维修,fsu动环监控单元是什么
  10. 【操作系统】虚拟存储器--页面置换算法
  11. Android图表年度最强总结,一篇文章从入门到精通!
  12. PDF如何修改编辑文字?两种简单的方法分享给大家
  13. 机器视觉-相机镜头光源介绍及选型-3.光源分类
  14. Swagger学习笔记(基于Go-Gin)
  15. 论文阅读:FlowNet 2.0: Evolution of Optical Flow Estimation with Deep Networks
  16. 找出阿里云服务器无法访问淘宝司拍页面原因
  17. 2021朔城区一中高考成绩查询,传承笃行奋进圆梦——朔城区一中2021届高三毕业典礼暨高考壮行大会...
  18. 电力线载波SoC实现路灯远程监控应用实例(中颖SH99F01)
  19. Linux C 进程间的信号通信
  20. 两相步进电机TMC5130A-TA-高压驱动器内置MOS管

热门文章

  1. 目前住院病人主要由护士护理,这样做不仅需要大量护士,而且还可能会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,试写出问题定义,并且分析开发这个系统的可行性。
  2. 开闭原则(Open-Closed Principle,OCP)
  3. 【java校招你不知道的那些事儿】校招和社招的区别是什么?为什么不参加社招
  4. 瞧一瞧看一看啦“一段眼睛跟着鼠标转动的跟踪眼代码”
  5. CoBOT Java安全漏洞检测类型与OWASP TOP 10对应关系
  6. 使用Appinum爬取微信朋友圈
  7. 学前端的你了解这些知识吗?——BFC、IFC、GFC、FFC
  8. 如何使用飞秋FeiQ实现两电脑通信(或传输文件)
  9. ZBrush控制撤销历史记录次数
  10. 电脑上不去无线网如何解决