应用程序开发公司
软件开发

针对您的项目需求及预算规划量身制定方案

个体/中小企业/集团/政府机构/行业组织 了解详情 了解详情

微信小程序实战教程:火车票查询,直取12306数据

发布时间:2024-01-01 00:00 浏览次数:72

样式帅大哭了,我毕竟不是前端,宗旨就是练练手,体验微信小程序的研发,以最为轻易的方式以获取12306数据查阅火车票。


目录结构:


search1就是启程东站列表,search2就是目的东站列表,命名没太好好想要。


车站信息


12306查阅页面,关上浏览器开发者工具分析命令,辨认出各个车站的信息都在这个JS文件中:


当然车站的信息可以出现变动,所以最出色的方式就是捕捉数据,我现在为了便利,轻易把数据拷贝过来,就是一大堆字符串:


通过正则封盖抽出目前项目须要的两个东西,例如:北京北 VAP


在search1.js和search2.js中各自摆了这个字符串,本想要按照data:{}的方式放到app.js中,可是挑没,这个该如何同时实现?


命令信息


12306查阅页面,页面查阅按钮的时候,它可以传送两个命令:


第一个就是日志命令,这里不须要,它存有什么促进作用12306晓得


第二个才就是我们须要的,拷贝它的命令地址,构筑我们程序的命令


url中最后的queryC,之前就是query的,可能将过段时间变成queryD、query0...


又一个变化的地方,也可以说道时时皆可以变化,毕竟12306不是自己搞的,无法掌控,


所以最出色还是捕捉数据的方式去搞,我现在便利轻易inotify了。


leftTicketDTO.train_date 日期,格式:2016-10-13


leftTicketDTO.from_station 启程东站编码,上面那堆上车站信息中的,北京北为VAP


leftTicketDTO.to_station 目的东站编码,同上


purpose_codes 普通(ADULT)或学生(0X00)


积极响应信息


参数错误或没见全回到的JSON:{"status":false,"c_url":"leftTicket/queryC","c_name":"CLeftTicketUrl"}


通常正常的格式为:


要是递交的就是昨天的日期,则messages中会存有消息,但status和httpstatus仍然为true和200。


于是乎对回到结果存有了如下推论:


展现信息


先看一看data中的存有什么东东:


使用的参数,能证实其促进作用的:


车次 station_train_code


始发站 start_station_name


终点站 end_station_name


启程东站 from_station_name


目的东站 to_station_name


启程时间 start_time


目的时间 arrive_time


历时时间 lishi


商务座 swz_num


一等座 zy_num


二等座 ze_num


软卧 rw_num


硬座 yw_num


软座 rz_num


硬座 yz_num


无座 wz_num


特等座 tz_num


gr_num和qt_num,猜测为高级软卧和其他,gg_num和yb_num就真的想不到了。


须要特别注意的就是,座位的票数少于某个数的返回值就是“存有”,而高于则回到的就是数字,所以在表明数据列表之前还得处置下。


在写下程序的时候我辨认出我存有挺多见解所写出的,可以至真正必须写下博客的时候却找不出必须写下什么了,可悲!日后想起在补足吧。


附上源码:http://pan.baidu.com/s/1hrKWRac


或者轻易浏览:TrainTicket.rar

TAG标签:
阅读推荐