欧美综合影院在线影院,国产精品女人久久久久久,日韩精品无码去免费专区,樱花草在线社区WWW日本影院

Menu
小程序資訊
小程序資訊
微信小程序?qū)崙?zhàn)教程:火車票查詢,直取12306數(shù)據(jù)
時(shí)間:2016-10-24 11:15:00

最終效果圖:

 

樣式丑哭了,我畢竟不是前端,宗旨就是練練手,體驗(yàn)微信小程序的開(kāi)發(fā),以最直接的方式獲取12306數(shù)據(jù)查詢火車票。

 

目錄結(jié)構(gòu):

search1是出發(fā)站列表,search2是目的站列表,命名沒(méi)有太好好想。

 

車站信息

12306查詢頁(yè)面,打開(kāi)瀏覽器開(kāi)發(fā)者工具分析請(qǐng)求,發(fā)現(xiàn)各個(gè)車站的信息都在這個(gè)JS文件中:

當(dāng)然車站的信息會(huì)發(fā)生變動(dòng),所以最好的方式就是抓取數(shù)據(jù),我現(xiàn)在為了方便,直接把數(shù)據(jù)拷貝過(guò)來(lái),就是一大堆字符串:

通過(guò)正則截取出目前項(xiàng)目需要的兩個(gè)東西,如:北京北 VAP

 

在search1.js和search2.js中各自放了這個(gè)字符串,本想按照data:{}的方式放在app.js中,可是取不到,這個(gè)該如何實(shí)現(xiàn)?

 

請(qǐng)求信息

12306查詢頁(yè)面,點(diǎn)擊查詢按鈕的時(shí)候,它會(huì)發(fā)送兩個(gè)請(qǐng)求:

第一個(gè)是日志請(qǐng)求,這里不需要,它有什么作用12306知道

第二個(gè)才是我們需要的,拷貝它的請(qǐng)求地址,構(gòu)建我們程序的請(qǐng)求

url中最后的queryC,之前是query的,可能過(guò)段時(shí)間變?yōu)閝ueryD、query0... 

又一個(gè)變化的地方,也可以說(shuō)處處皆會(huì)變化,畢竟12306不是自己做的,無(wú)法掌控,

所以最好還是抓取數(shù)據(jù)的方式來(lái)做,我現(xiàn)在方便直接寫死了。

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

leftTicketDTO.from_station  出發(fā)站編碼,上面那堆車站信息中的,北京北為VAP

leftTicketDTO.to_station  目的站編碼,同上

purpose_codes  普通(ADULT)或?qū)W生(0X00)

 

響應(yīng)信息

參數(shù)錯(cuò)誤或沒(méi)給全返回的JSON:{"status":false,"c_url":"leftTicket/queryC","c_name":"CLeftTicketUrl"}

一般正常的格式為:

要是提交的是昨天的日期,則messages中會(huì)有消息,但status和httpstatus仍然為true和200。

于是乎對(duì)返回結(jié)果有了如下判斷:

 

 

展示信息

 先看看data中的有什么東東:

用到的參數(shù),能夠確認(rèn)其作用的:

車次 station_train_code

始發(fā)站 start_station_name

終點(diǎn)站 end_station_name

出發(fā)站 from_station_name

目的站 to_station_name

出發(fā)時(shí)間 start_time

目的時(shí)間 arrive_time

歷時(shí)時(shí)間 lishi

商務(wù)座 swz_num

一等座 zy_num

二等座 ze_num

軟臥 rw_num

硬臥 yw_num

軟座 rz_num

硬座 yz_num

無(wú)座 wz_num

特等座 tz_num

gr_num和qt_num,猜測(cè)為高級(jí)軟臥和其他,gg_num和yb_num就實(shí)在想不到了。

需要注意的是,座位的票數(shù)超過(guò)某個(gè)數(shù)的返回值是“有”,而低于則返回的是數(shù)字,所以在顯示數(shù)據(jù)列表之前還得處理下。

  

在寫程序的時(shí)候我發(fā)現(xiàn)我有挺多想法想寫出來(lái)的,可到真正要寫博客的時(shí)候卻想不出要寫什么了,悲哀!日后想到在補(bǔ)充吧。

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

或者直接下載:TrainTicket.rar

咨詢
微信掃碼咨詢
電話咨詢
400-888-9358