我的Android進階之旅——>關於調用Webservice查詢火車票時刻表的幾個接口介紹

今天發現一個可以提供火車票時刻表查詢的WebService,先記錄下來以後如果寫一個火車票時刻表查詢的Android App的話就用的著。首先該WebService的的名字是TrainTimeWebService,地址是:http://webservice.webxml.com.cn/WebServices/TrainTimeWebService.asmx。

當然關於WebService的相關知識可以查看本人的另外文章:

我的Android進階之旅——>Android通過調用Webservice實現天氣預報(地址:http://blog.csdn.net/ouyang_peng/article/details/8868708)

我的Android進階之旅——>WebService的讀書筆記(地址:http://blog.csdn.net/ouyang_peng/article/details/8868690)

下面就來介紹火車時刻表查詢的幾個接口:

getStationNameDataSet :

1、作用:獲得本火車時刻表Web Services支持的全部站臺名稱和拼音縮寫 DataSet 

2、說明:輸入參數:無;返回數據:結構為 站臺名稱、拼音縮寫,按拼音縮寫升序排列

3、實例:調用該接口後返回的XML數據,部分代碼如下所示,有些站點沒有拼音縮寫:

[html]  

<StationName diffgr:id="StationName1985" msdata:rowOrder="1984">  

<station_name>深圳</station_name>  

<station_shortcode>SZ</station_shortcode>  

</StationName>  

<StationName diffgr:id="StationName2001" msdata:rowOrder="2000">  

<station_name>深圳西</station_name>  

<station_shortcode>SZX</station_shortcode>  

</StationName>  

<StationName diffgr:id="StationName86" msdata:rowOrder="85">  

<station_name>深圳北</station_name>  

<station_shortcode/>  

</StationName>  

<StationName diffgr:id="StationName87" msdata:rowOrder="86">  

<station_name>深圳東</station_name>  

<station_shortcode/>  

</StationName>  

getStationName :

1、作用:獲得本火車時刻表Web Services支持的全部站臺名稱

2、說明:輸入參數:無,輸出參數 String()

3、實例:調用該接口後返回的XML數據,部分代碼如下所示:

[html] view plaincopy

<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://WebXml.com.cn/">  

<string>深圳</string>  

<string>深圳北</string>  

<string>深圳東</string>  

<string>深圳西</string>  

</ArrayOfString>  

 

getStationAndTimeDataSetByTrainCode :

1、作用:通過火車車次查詢本火車時刻表

 DataSet

2、說明:輸入參數:車次代號字符串,空字符串默認上海到北京D32次,UserID = 商業用戶ID(普通用戶不需要);

返回數據:DataSet,Item.(TrainCode)=車次、Item.(FirstStation)=始發站、Item.(LastStation)=終點站、

Item.(StartStation)=發車站、Item.(StartTime)=發車時間、Item.(ArriveStation)=到達站、

Item.(ArriveTime)=到達時間、Item.(KM)=裡程(KM)、Item.(UseDate)=歷時

3、實例:如圖我們輸入車次D7001再調用該接口後,

 

返回的XML數據部分代碼如下所示:

[html] 

<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">  

<getStationAndTime xmlns="">  

<TimeTable diffgr:id="TimeTable1" msdata:rowOrder="0" diffgr:hasChanges="inserted">  

<TrainCode>D7001</TrainCode>  

<FirstStation>廣州</FirstStation>  

<LastStation>深圳</LastStation>  

<StartStation>廣州</StartStation>  

<StartTime>06:03:00</StartTime>  

<ArriveStation>深圳</ArriveStation>  

<ArriveTime>07:34:00</ArriveTime>  

<KM>147</KM>  

<UseDate>1:31</UseDate>  

</TimeTable>  

</getStationAndTime>  

</diffgr:diffgram>  

getStationAndTimeDataSetByTrainCode :

1、作用:通過火車車次查詢本火車時刻表(支持模糊查詢)

 DataSet

2、說明:輸入參數:車次代號字符串(支持模糊查詢),空字符串默認上海到北京D32次,UserID = 商業用戶ID(普通用戶不需要);

返回數據:DataSet,Item.(TrainCode)=車次、Item.(FirstStation)=始發站、Item.(LastStation)=終點站、

Item.(StartStation)=發車站、Item.(StartTime)=發車時間、Item.(ArriveStation)=到達站、Item.(ArriveTime)=到達時間、

Item.(KM)=裡程(KM)、Item.(UseDate)=歷時

3、實例:如圖我們輸入車次D700,再調用該接口進行模糊查詢後,

 

 

返回的XML數據部分代碼如下所示:

[html]  

<getStationAndTime xmlns="">  

<TimeTable diffgr:id="TimeTable1" msdata:rowOrder="0" diffgr:hasChanges="inserted">  

<TrainCode>D7001</TrainCode>  

<FirstStation>廣州</FirstStation>  

<LastStation>深圳</LastStation>  

<StartStation>廣州</StartStation>  

<StartTime>06:03:00</StartTime>  

<ArriveStation>深圳</ArriveStation>  

<ArriveTime>07:34:00</ArriveTime>  

<KM>147</KM>  

<UseDate>1:31</UseDate>  

</TimeTable>  

<TimeTable diffgr:id="TimeTable2" msdata:rowOrder="1" diffgr:hasChanges="inserted">  

<TrainCode>D7002</TrainCode>  

<FirstStation>深圳</FirstStation>  

<LastStation>廣州</LastStation>  

<StartStation>深圳</StartStation>  

<StartTime>07:46:00</StartTime>  

<ArriveStation>廣州</ArriveStation>  

<ArriveTime>07:34:00</ArriveTime>  

<KM>147</KM>  

<UseDate>1:34</UseDate>  

</TimeTable>  

<TimeTable diffgr:id="TimeTable3" msdata:rowOrder="2" diffgr:hasChanges="inserted">  

<TrainCode>D7003</TrainCode>  

<FirstStation>廣州</FirstStation>  

<LastStation>深圳</LastStation>  

<StartStation>廣州</StartStation>  

<StartTime>09:32:00</StartTime>  

<ArriveStation>深圳</ArriveStation>  

<ArriveTime>07:34:00</ArriveTime>  

<KM>147</KM>  

<UseDate>1:35</UseDate>  

</TimeTable>  

<TimeTable diffgr:id="TimeTable4" msdata:rowOrder="3" diffgr:hasChanges="inserted">  

<TrainCode>D7004</TrainCode>  

<FirstStation>深圳</FirstStation>  

<LastStation>廣州東</LastStation>  

<StartStation>深圳</StartStation>  

<StartTime>11:20:00</StartTime>  

<ArriveStation>廣州東</ArriveStation>  

<ArriveTime>07:34:00</ArriveTime>  

<KM>139</KM>  

<UseDate>1:19</UseDate>  

</TimeTable>  

<TimeTable diffgr:id="TimeTable5" msdata:rowOrder="4" diffgr:hasChanges="inserted">  

<TrainCode>D7005</TrainCode>  

<FirstStation>廣州東</FirstStation>  

<LastStation>深圳</LastStation>  

<StartStation>廣州東</StartStation>  

<StartTime>12:54:00</StartTime>  

<ArriveStation>深圳</ArriveStation>  

<ArriveTime>07:34:00</ArriveTime>  

<KM>139</KM>  

<UseDate>1:19</UseDate>  

</TimeTable>  

<TimeTable diffgr:id="TimeTable6" msdata:rowOrder="5" diffgr:hasChanges="inserted">  

<TrainCode>D7006</TrainCode>  

<FirstStation>深圳</FirstStation>  

<LastStation>廣州東</LastStation>  

<StartStation>深圳</StartStation>  

<StartTime>14:25:00</StartTime>  

<ArriveStation>廣州東</ArriveStation>  

<ArriveTime>07:34:00</ArriveTime>  

<KM>139</KM>  

<UseDate>1:19</UseDate>  

</TimeTable>  

<TimeTable diffgr:id="TimeTable7" msdata:rowOrder="6" diffgr:hasChanges="inserted">  

<TrainCode>D7007</TrainCode>  

<FirstStation>廣州東</FirstStation>  

<LastStation>深圳</LastStation>  

<StartStation>廣州東</StartStation>  

<StartTime>15:56:00</StartTime>  

<ArriveStation>深圳</ArriveStation>  

<ArriveTime>07:34:00</ArriveTime>  

<KM>139</KM>  

<UseDate>1:19</UseDate>  

</TimeTable>  

<TimeTable diffgr:id="TimeTable8" msdata:rowOrder="7" diffgr:hasChanges="inserted">  

<TrainCode>D7008</TrainCode>  

<FirstStation>深圳</FirstStation>  

<LastStation>廣州東</LastStation>  

<StartStation>深圳</StartStation>  

<StartTime>17:27:00</StartTime>  

<ArriveStation>廣州東</ArriveStation>  

<ArriveTime>07:34:00</ArriveTime>  

<KM>139</KM>  

<UseDate>1:19</UseDate>  

</TimeTable>  

<TimeTable diffgr:id="TimeTable9" msdata:rowOrder="8" diffgr:hasChanges="inserted">  

<TrainCode>D7009</TrainCode>  

<FirstStation>廣州東</FirstStation>  

<LastStation>深圳</LastStation>  

<StartStation>廣州東</StartStation>  

<StartTime>18:58:00</StartTime>  

<ArriveStation>深圳</ArriveStation>  

<ArriveTime>07:34:00</ArriveTime>  

<KM>139</KM>  

<UseDate>1:19</UseDate>  

</TimeTable>  

</getStationAndTime>  

getStationAndTimeByTrainCode :

 1、作用:通過火車車次查詢火車時刻表 String()

2、說明:輸入參數:車次代號字符串,空字符串默認上海到北京D32次,UserID = 商業用戶ID(普通用戶不需要);

返回數據:一個一維字符串數組 String(9),String(0)=車次、String(1)=始發站、String(2)=終點站、

String(3)=發車站、String(4)=發車時間、String(5)=到達站、String(6)=到達時間、String(7)=裡程(KM)、

String(8)=歷時、String(9)=空字符串(備用)

3、實例:如圖我們輸入車次D7001,再調用該接口進行模糊查詢後,

 

 

返回的XML數據部分代碼如下所示:

 

[html]  

<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://WebXml.com.cn/">  

<string>D7001</string>  

<string>廣州</string>  

<string>深圳</string>  

<string>廣州</string>  

<string>06:03:00</string>  

<string>深圳</string>  

<string>07:34:00</string>  

<string>147</string>  

<string>1:31</string>  

<string/>  

</ArrayOfString>  

 

getStationAndTimeByStationName: 

1、作用:通過發車站和到達站查詢火車時刻表 DataSet

 

2、說明:輸入參數:StartStation = 發車站,ArriveStation = 到達站(支持第一個字匹配模糊查詢),空字符串默認發車站上海

 

和到達站北京,UserID = 商業用戶ID(普通用戶不需要);

 

返回數據:DataSet,Item.(TrainCode)=車次、Item.(FirstStation)=始發站、Item.(LastStation)=終點站、

 

Item.(StartStation)=發車站、Item.(StartTime)=發車時間、Item.(ArriveStation)=到達站、

 

Item.(ArriveTime)=到達時間、Item.(KM)=裡程(KM)、Item.(UseDate)=歷時

 

 

3、實例:如圖我們輸入發車站:深圳、到達站:廣州,再調用該接口進行模糊查詢後,

 

 

 

 

返回的XML數據部分代碼如下所示:

 

[html]  

<getStationAndTime xmlns="">  

<TimeTable diffgr:id="TimeTable1" msdata:rowOrder="0" diffgr:hasChanges="inserted">  

<TrainCode>D7002</TrainCode>  

<FirstStation>深圳</FirstStation>  

<LastStation>廣州</LastStation>  

<StartStation>深圳</StartStation>  

<StartTime>07:46:00</StartTime>  

<ArriveStation>廣州東</ArriveStation>  

<ArriveTime>09:05:00</ArriveTime>  

<KM>139</KM>  

<UseDate>01:19</UseDate>  

</TimeTable>  

<TimeTable diffgr:id="TimeTable2" msdata:rowOrder="1" diffgr:hasChanges="inserted">  

<TrainCode>D7002</TrainCode>  

<FirstStation>深圳</FirstStation>  

<LastStation>廣州</LastStation>  

<StartStation>深圳</StartStation>  

<StartTime>07:46:00</StartTime>  

<ArriveStation>廣州</ArriveStation>  

<ArriveTime>09:20:00</ArriveTime>  

<KM>147</KM>  

<UseDate>01:34</UseDate>  

</TimeTable>  

<TimeTable diffgr:id="TimeTable137" msdata:rowOrder="136" diffgr:hasChanges="inserted">  

<TrainCode>K9060\K9061</TrainCode>  

<FirstStation>深圳西</FirstStation>  

<LastStation>懷化</LastStation>  

<StartStation>深圳西</StartStation>  

<StartTime>19:08:00</StartTime>  

<ArriveStation>廣州</ArriveStation>  

<ArriveTime>21:18:00</ArriveTime>  

<KM>162</KM>  

<UseDate>02:10</UseDate>  

</TimeTable>  

<TimeTable diffgr:id="TimeTable138" msdata:rowOrder="137" diffgr:hasChanges="inserted">  

<TrainCode>K9064\K9065</TrainCode>  

<FirstStation>深圳西</FirstStation>  

<LastStation>銅仁</LastStation>  

<StartStation>深圳西</StartStation>  

<StartTime>11:20:00</StartTime>  

<ArriveStation>廣州</ArriveStation>  

<ArriveTime>13:50:00</ArriveTime>  

<KM>162</KM>  

<UseDate>02:30</UseDate>  

</TimeTable>  

<TimeTable diffgr:id="TimeTable139" msdata:rowOrder="138" diffgr:hasChanges="inserted">  

<TrainCode>K9076</TrainCode>  

<FirstStation>深圳東</FirstStation>  

<LastStation>常德</LastStation>  

<StartStation>深圳東</StartStation>  

<StartTime>19:05:00</StartTime>  

<ArriveStation>廣州</ArriveStation>  

<ArriveTime>21:24:00</ArriveTime>  

<KM>139</KM>  

<UseDate>02:19</UseDate>  

</TimeTable>  

</getStationAndTime>  

 

getDetailInfoByTrainCode :

 1、作用:通過火車車次查詢列車經由車站明細 DataSet

 

2、說明:輸入參數:車次代號字符串,空字符串默認上海到北京D32次,UserID = 商業用戶ID(普通用戶不需要);

 

返回數據:DataSet,Item.(TrainStation)=車站名稱、Item.(ArriveTime)=到站時間、

 

Item.(StartTime)=發車時間、Item.(KM)=裡程(KM)

 

 

3、實例:如圖我們輸入發車站:深圳、到達站:廣州,再調用該接口進行模糊查詢後,

 

 

 

 

返回的XML數據部分代碼如下所示:

 

 

 

[html] 

<getDetailInfo xmlns="">  

<TrainDetailInfo diffgr:id="TrainDetailInfo1" msdata:rowOrder="0" diffgr:hasChanges="inserted">  

<TrainStation>廣州(車次:D7001)</TrainStation>  

<ArriveTime/>  

<StartTime>06:03:00</StartTime>  

<KM>0</KM>  

</TrainDetailInfo>  

<TrainDetailInfo diffgr:id="TrainDetailInfo2" msdata:rowOrder="1" diffgr:hasChanges="inserted">  

<TrainStation>廣州東</TrainStation>  

<ArriveTime>06:13:00</ArriveTime>  

<StartTime>06:15:00</StartTime>  

<KM>8</KM>  

</TrainDetailInfo>  

<TrainDetailInfo diffgr:id="TrainDetailInfo3" msdata:rowOrder="2" diffgr:hasChanges="inserted">  

<TrainStation>石龍</TrainStation>  

<ArriveTime>06:41:00</ArriveTime>  

<StartTime>06:43:00</StartTime>  

<KM>69</KM>  

</TrainDetailInfo>  

<TrainDetailInfo diffgr:id="TrainDetailInfo4" msdata:rowOrder="3" diffgr:hasChanges="inserted">  

<TrainStation>常平</TrainStation>  

<ArriveTime>06:54:00</ArriveTime>  

<StartTime>06:56:00</StartTime>  

<KM>90</KM>  

</TrainDetailInfo>  

<TrainDetailInfo diffgr:id="TrainDetailInfo5" msdata:rowOrder="4" diffgr:hasChanges="inserted">  

<TrainStation>樟木頭</TrainStation>  

<ArriveTime>07:03:00</ArriveTime>  

<StartTime>07:05:00</StartTime>  

<KM>103</KM>  

</TrainDetailInfo>  

<TrainDetailInfo diffgr:id="TrainDetailInfo6" msdata:rowOrder="5" diffgr:hasChanges="inserted">  

<TrainStation>深圳</TrainStation>  

<ArriveTime>07:34:00</ArriveTime>  

<StartTime/>  

<KM>147</KM>  

</TrainDetailInfo>  

</getDetailInfo>  

 

通過對以上幾個接口的合理應用,我們就能通過調用這些接口,通過處理返回的XML數據,

 

能夠實現比較簡單的Android火車票時刻查詢應用。

 

發佈留言