本文叙述的是使用C#调用12306的API做余票查询程序的方法。
先看一下程序运行截图。本程序使用WPF。
1. 了解12306API
登陆12306网站,点击余票查询,我们查询从北京到上海的火车票。
抓取到的数据包如下:
请求报文头:
这就是我们封装查询报文时需要模仿的格式。
返回报文为一个json格式的字符串,下面是一个样例:
{"validateMessagesShowId":"_validatorMessage","status":true,"httpstatus":200,"data":{"datas":[{"train_no":"240000T1090K","station_train_code":"T109","start_station_telecode":"BJP","start_station_name":"北京","end_station_telecode":"SHH","end_station_name":"上海","from_station_telecode":"BJP","from_station_name":"北京","to_station_telecode":"SHH","to_station_name":"上海","start_time":"19:33","arrive_time":"10:44","day_difference":"1","train_class_name":"","lishi":"15:11","canWebBuy":"Y","lishiValue":"911","yp_info":"10177531664047650000101775000060879500063030450000","control_train_day":"20201231","start_train_date":"20150110","seat_feature":"W343136333","yp_ex":"1040106030","train_seat_feature":"3","seat_types":"14163","location_code":"P4","from_station_no":"01","to_station_no":"11","control_day":59,"sale_time":"1000","is_support_card":"0","note":"","gg_num":"--","gr_num":"6","qt_num":"--","rw_num":"无","rz_num":"--","tz_num"