使用HTTP GET请求12306网站接口获取车站名和车站Code
2013-05-31 17:28
453 查看
打开链接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。
获取解析数据的示例代码如下:
附件
全国火车站代号字典: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();
相关文章推荐
- .NET获取聚合数据接口数据(Http协议POST和GET请求)
- 使用HTTP POST请求12306网站接口查询火车车次API
- Android HTTP实例 使用GET方法和POST方法发送请求(通过Apache接口实现)
- 使用HttpURLConnection开发自动发送Get、Post请求并获取响应
- 网易新闻API接口的实现(Picasso类库的使用与HTTP协议的get请求,BitMap样例(未使用))
- 使用HTTP POST请求12306网站接口查询火车车次API
- 使用HTTP POST请求12306网站接口查询火车车次API
- 第十二篇:Android GET请求获取网络数据以及POST数据(使用HttpURLConnection)
- Android HttpClient GET或者POST请求基本使用方法
- wp7使用POST请求Asp.net网页时,HttpWebRequest的BeginGetResponse方法抛出NotSupportException异常的解决方法
- 微信公众号:1-IDHTTP控件:GET/POST 请求获取access_token
- android 多线程环境下 HttpURLConnection getResponseCode 偶尔获取到的是 -1
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
- 如何使用火狐浏览器的 live http headers调试http post get请求
- iOS-使用NSURLConnection进行Http Get和Post请求网络数据
- Android——使用Http的get方式获取数据
- BIM360: C#如何发送HTTP GET和POST请求登陆BIM 360 Glue以及获取项目列表
- 学习笔记--post 相比get 有很多优点,为什么现在的HTTP通信中大多数请求还是使用get?
- go get 请求获取http body
- 使用getdetailsof 接口获取文件属性