同时也分享一个火车票查询的:
接口估计不能用了,新的接口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