利用快递100api查询快递信息

同时也分享一个火车票查询的:

接口估计不能用了,新的接口php写的,可以研究下。

http://www.widuu.com/archives/01/919.html

,欢迎吐槽。

火车余票查询源码地址(接口已经不可用):http://download.csdn.net/detail/xxm282828/6811635

快递查询源码地址:http://download.csdn.net/detail/xxm282828/6811617

获取快递信息的部分内容参考了网上的一个代码。

1、利用快递100提供的免费api查询快递相关信息。这里是解析返回来的网页。快递100需要申请key,但是个人app只提供了这个,so。。。。。。。

http://www.kuaidi100.com/openapi/mobileapi.shtml


2、我在子线程里面去获取信息,处理,然后利用handler更新Ui,

最后的结果中,用了两个List<String>  一个用于存放时间,另外一个对应,存放快递物流信息,因为考虑到在后面显示的时候,时间和内容分开(原本打算,做个界面类似于淘宝里面的效果,但后来放弃了,。有时间再做个demo。请看图方框部分:


)。

处理数据,通过将网页元素里面的<p></p>结点里面的内容拿出来,取出需要的东西就行。但是有个地方我好像随便了点,不靠谱的做法,

 else if (tempStr.startsWith("建议操作")) {

					msg = new Message();
					msg.what = 10;
					mHandler.sendMessage(msg);

					return;
				}


org.jsoup.nodes.Document doc = Jsoup.parse(result);// 7409440775
			Elements element = doc.body().getElementsByTag("p");
			Object[] objArr = element.toArray();
			Pattern p = Pattern.compile("<.+?>|\\>|\\·",
					Pattern.DOTALL);

			String tempStr = null;
			ArrayList<String> timeList = new ArrayList<String>();// 存放快递的时间
			ArrayList<String> infoList = new ArrayList<String>();// 存放快递的对应时间点的信息

			for (int i = 3; i < objArr.length - 2; i++) {
				Matcher m = p.matcher(objArr[i].toString());
				tempStr = m.replaceAll("");
				if (TextUtils.isEmpty(tempStr)) {

					continue;
				} else if (tempStr.startsWith("建议操作")) {

					msg = new Message();
					msg.what = 10;
					mHandler.sendMessage(msg);

					return;
				}
				// 2013-11-17 00:25:57 福建省泉州市石狮市公司 已收件 操作员:包叶明
				timeList.add(new String(tempStr.substring(0, 19)));
				infoList.add(new String(tempStr.substring(20)));
			}


/**
	 * 子线程联网获取数据
	 * 
	 * @author xiangxm
	 * 
	 */
	class MyThread extends Thread {

		private HashMap<String, String> threadMap = null;

		public MyThread(HashMap<String, String> map) {

			threadMap = new HashMap<String, String>();
			this.threadMap = map;

		}

		@Override
		public void run() {

			int rand = (int) Math.random() * 1000 + 1000;
			String strurl = "http://wap.kuaidi100.com/q.jsp?rand=" + rand
					+ "&id=" + threadMap.get("companyId") + "&postid="
					+ threadMap.get("order_num") + "&fromWeb=null";
			Message msg = new Message();
			msg.what = WAITTING;
			mHandler.sendMessage(msg);// http://wap.kuaidi100.com/q.jsp?rand=1000&id=aae&postid=987654321&fromWeb=null
			String result = getData(strurl);// http://m.kuaidi100.com/index_all.html?type=yuantong&postid=7409440775
			if (result.equals("")) {

				msg = new Message();
				msg.what = 10;
				mHandler.sendMessage(msg);

				return;
			}

			org.jsoup.nodes.Document doc = Jsoup.parse(result);// 7409440775
			Elements element = doc.body().getElementsByTag("p");
			Object
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值