关于前文,
查询12306余票中,要用到广州——CZQ,西安——XAY这样的参数,字母简称什么呢?
这里解释一下,这些字母简称是车站的电报码,是字母缩写,来表示唯一的车站。那么这些数据从哪里来呢。
1、网上有下载的,百度搜索:火车站 电报码,会看到有相关的文件。
2、从12306网站获取
不过这个也会随时改变的。
因为这些车站会维护,简称也许会变化。所以从12306上获取比较靠谱一点。
获取步骤为:用IE9打开12306首页——F12——网络——开始捕获——打开12306余票查询页面——输入参数,注意:不要只输入省会站,要输入一些非省会的站——点击查询
——在返回刚才点击开始捕获的地方,点击 停止捕获。
如图:
响应正文
这些就是所有信息。
代码如下
效果:
方法:
这里解释一下,这些字母简称是车站的电报码,是字母缩写,来表示唯一的车站。那么这些数据从哪里来呢。
1、网上有下载的,百度搜索:火车站 电报码,会看到有相关的文件。
2、从12306网站获取
不过这个也会随时改变的。
因为这些车站会维护,简称也许会变化。所以从12306上获取比较靠谱一点。
获取步骤为:用IE9打开12306首页——F12——网络——开始捕获——打开12306余票查询页面——输入参数,注意:不要只输入省会站,要输入一些非省会的站——点击查询
——在返回刚才点击开始捕获的地方,点击 停止捕获。
如图:
响应正文
这些就是所有信息。
代码如下
效果:
方法:
public class TrainInfoManager
{
public static string DoGetTrainStationNames()
{
string stationContent = string.Empty;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@"http://dynamic.12306.cn/otsquery/js/common/station_name.js?version=1.57");
request.Accept = @"application/javascript, */*;q=0.8";
request.UserAgent = @"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)";
request.Referer = @"http://dynamic.12306.cn/otsquery/query/queryRemanentTicketAction.do?method=init";
request.Method = "GET";
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
stationContent = reader.ReadToEnd();
}
}
}
catch { }
return stationContent;
}
}
代码下载