全栈工程师之路--第十九天

重量级接口!!12306火车票接口的使用

火车票接口的使用并不难 最重要的是一个请求的URL的拼接,URL地址如下:

var url = '/otn/leftTicket/query?leftTicketDTO.train_date='+req.body.date+'&leftTicketDTO.from_station='+req.body.start+'&leftTicketDTO.to_station='+req.body.end+'&purpose_codes=ADULT';

还需要给定一些参数,如下:

var options = {
    hostname: 'kyfw.12306.cn',
    port: 443,
    path: url,
    method: 'GET',
    rejectUnauthorized: false
};

然后模拟发送一个请求,就会返回一大堆数据。JSON返回示例:

{
"error_code": "0",
"reason": "Success",
"result": [{
    "train_no": "D2287",
    /*车次*/
    "start_station_name": "上海虹桥",
    /*车次始发站*/
    "end_station_name": "深圳北",
    /*车次终点站*/
    "from_station_name": "上海虹桥",
    /*出发站*/
    "to_station_name": "温州南",
    /*到达站*/
    "start_time": "06:25",
    /*出发时间*/
    "arrive_time": "10:53",
    /*到达时间*/
    "train_class_name": "动车",
    /*车次类型*/
    "day_difference": "0",
    /*历时天数*/
    "lishi": "04:28",
    /*总历时时间*/
    "gr_num": "--",
    /*高级软卧:-- 说明无该席位*/
    "qt_num": "--",
    /*其他*/
    "rw_num": "--",
    /*软卧*/
    "rz_num": "--",
    /*软座*/
    "tz_num": "--",
    /*特等座*/
    "wz_num": "无",
    /*无座*/
    "yw_num": "--",
    /*硬卧*/
    "yz_num": "--",
    /*硬座*/
    "ze_num": "无",
    /*二等座*/
    "zy_num": "无",
    /*一等座*/
    "swz_num": "--"
    /*商务座*/
},
{
    "train_no": "D3203",
    "start_station_name": "上海虹桥",
    "end_station_name": "厦门北",
    "from_station_name": "上海虹桥",
    "to_station_name": "温州南",
    "start_time": "06:30",
    "arrive_time": "11:09",
    "train_class_name": "动车",
    "day_difference": "0",
    "lishi": "04:39",
    "gr_num": "--",
    "qt_num": "--",
    "rw_num": "--",
    "rz_num": "--",
    "tz_num": "--",
    "wz_num": "无",
    "yw_num": "--",
    "yz_num": "--",
    "ze_num": "无",
    "zy_num": "无",
    "swz_num": "--",
    "ticketprice": {
        "OT": [],
        "WZ": "¥226.0",
        "M": "¥335.5",
        "A9": "¥689.0",
        "9": "6890",
        "O": "¥226.0",
        "train_no": "5l000G753722"
    }
},
{
    "train_no": "G7501",
    "start_station_name": "上海虹桥",
    "end_station_name": "苍南",
    "from_station_name": "上海虹桥",
    "to_station_name": "温州南",
    "start_time": "07:00",
    "arrive_time": "11:00",
    "train_class_name": "",
    "day_difference": "0",
    "lishi": "04:00",
    "gr_num": "--",
    "qt_num": "--",
    "rw_num": "--",
    "rz_num": "--",
    "tz_num": "--",
    "wz_num": "165",
    "yw_num": "--",
    "yz_num": "--",
    "ze_num": "无",
    "zy_num": "无",
    "swz_num": "15",
    "ticketprice": {
        "OT": [],
        "WZ": "¥226.0",
        "M": "¥335.5",
        "A9": "¥689.0",
        "9": "6890",
        "O": "¥226.0",
        "train_no": "5l000G753722"
    }
  }]
 }

需要注意的是,站点之间需要用站点编码表示,而不能用中文!所以,需要去网上找编码对应的站点信息。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,073评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,101评论 18 399
  • iOS网络编程读书笔记 Facade Tester客户端门面模式的实例(被动版本化) 被动版本化,所以硬编码URL...
    melouverrr阅读 5,542评论 3 7
  • 今天接触了属性字符串的部分用法,发现真是好用啊!以下是部分用法: 其实际效果如下:
    HunterG阅读 8,452评论 0 3
  • 藏族摸奶节 范冰冰马震 女星假戏真做 【相关论文推荐】 关于跨境经济合作区研究:文献综述 跨境电子商务发展研究的文...
    听风夜行者阅读 5,010评论 0 0

友情链接更多精彩内容