使用HTTP GET請求12306網站接口獲取車站名和車站Code


打開鏈接http://www.devapi.org/12306-Search-Train-Number.html 拖到此頁面的最下端,看附件:

   附件

   全國火車站代號字典:station_name.js

   該字典用js保存,數據結構如下:

   ?
   1
   var station_names ='@bjb|北京北|VAP|beijingbei|bjb|0';
   其中的大寫字母VAP即是車站代號。

   附贈一款接口測試工具,可在此工具中模擬HTTP GET/POST。猛戳這里下載

此附件有一個js文件,該文件是全國火車站名的代號,我下面的程序就是獲取到該js文件里面的火車站名和它的代號Code。比如上面station_names 中的“北京北”和“VAP”。這個js文件的鏈接地址是:

   http://dynamic.12306.cn/otsweb/js/common/station_name.js

利用HTTP GET請求,GET表示瀏覽器從服務器取數據的方式,並且在此期間瀏覽器不向服務器發送任何的數據,所有數據均體現在URL當中。get是從服務器上獲取數據。在客戶端,Get方式在通過URL提交數據,數據在URL中可以看到。對於get方式,服務器端用Request.QueryString獲取變量的值。GET方式提交的數據最多只能有1024字節。安全性問題,使用 Get 的時候,參數會顯示在地址欄上,而 Post 不會。所以,如果這些數據是中文數據而且是非敏感數據,那么使用 get。

獲取解析數據的示例代碼如下:

           string formUrl = "http://dynamic.12306.cn/otsweb/js/common/station_name.js"; 

            CookieContainer cookieContainer = new CookieContainer(); 
                       
            HttpWebRequest request = WebRequest.Create(formUrl) as HttpWebRequest;    
            request.Method = "GET";          
            request.KeepAlive = false;         
            request.AllowAutoRedirect = true;           
            request.ContentType = "application/x-www-form-urlencoded";       
            request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";         
            request.CookieContainer = cookieContainer; 
            HttpWebResponse SendSMSResponse = (HttpWebResponse)request.GetResponse();
            StreamReader SendSMSResponseStream = new StreamReader(SendSMSResponse.GetResponseStream());
            string strRespone = SendSMSResponseStream.ReadToEnd(); 
            SendSMSResponse.Close(); 
            SendSMSResponseStream.Close();

            Console.WriteLine(strRespone);
            Console.Read();

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM