服務項目
品牌網站建設

數字營銷

係統平台開發

數字產品

安全運維

Menu
官网开云
官网开云
微信小程序實戰教程:火車票查詢,直取12306數據
時間:2016-10-24 11:15:00

最終效果圖:

 

樣式醜(chou) 哭了,我畢竟不是前端,宗旨就是練練手,體(ti) 驗微信小程序的開發,以最直接的方式獲取12306數據查詢火車票。

 

目錄結構:

search1是出發站列表,search2是目的站列表,命名沒有太好好想。

 

車站信息

12306查詢頁麵,打開瀏覽器開發者工具分析請求,發現各個(ge) 車站的信息都在這個(ge) JS文件中:

當然車站的信息會(hui) 發生變動,所以最好的方式就是抓取數據,我現在為(wei) 了方便,直接把數據拷貝過來,就是一大堆字符串:

通過正則截取出目前項目需要的兩(liang) 個(ge) 東(dong) 西,如:北京北 VAP

 

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

 

請求信息

12306查詢頁麵,點擊查詢按鈕的時候,它會(hui) 發送兩(liang) 個(ge) 請求:

第一個(ge) 是日誌請求,這裏不需要,它有什麽(me) 作用12306知道

第二個(ge) 才是我們(men) 需要的,拷貝它的請求地址,構建我們(men) 程序的請求

url中最後的queryC,之前是query的,可能過段時間變為(wei) queryD、query0... 

又一個(ge) 變化的地方,也可以說處處皆會(hui) 變化,畢竟12306不是自己做的,無法掌控,

所以最好還是抓取數據的方式來做,我現在方便直接寫(xie) 死了。

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

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

leftTicketDTO.to_station  目的站編碼,同上

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

 

響應信息

參數錯誤或沒給全返回的JSON:{"status":false,"c_url":"leftTicket/queryC","c_name":"CLeftTicketUrl"}

一般正常的格式為(wei) :

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

於(yu) 是乎對返回結果有了如下判斷:

 

 

展示信息

 先看看data中的有什麽(me) 東(dong) 東(dong) :

用到的參數,能夠確認其作用的:

車次 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,猜測為(wei) 高級軟臥和其他,gg_num和yb_num就實在想不到了。

需要注意的是,座位的票數超過某個(ge) 數的返回值是“有”,而低於(yu) 則返回的是數字,所以在顯示數據列表之前還得處理下。

  

在寫(xie) 程序的時候我發現我有挺多想法想寫(xie) 出來的,可到真正要寫(xie) 博客的時候卻想不出要寫(xie) 什麽(me) 了,悲哀!日後想到在補充吧。

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

或者直接下載:TrainTicket.rar

Kaiyun体育官方全站入口服務SERVICE
谘詢
微信掃碼谘詢
電話谘詢
400-888-9358