• 使用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();
  • 相关阅读:
    1641. 统计字典序元音字符串的数目
    1688. 比赛中的配对次数
    核心思路
    面试题 16.17. 连续数列
    70. 爬楼梯
    面试题 08.01. 三步问题
    剑指Offer 42. 连续子数组的最大和
    设计模式之原型模式
    代理模式之动态代理
    设计模式之禅(六大设计原则)
  • 原文地址:https://www.cnblogs.com/litao4047/p/3110781.html
Copyright © 2020-2023  润新知