XDL_NO.18 12306 火车票查询接口 API 使用

2016-08-31  本文已影响556人  Junting

12306 火车票查询接口 API 使用


准备工作

拼装请求url地址,始发地和目的地 是城市站的代码
这个链接 需要在访问的时候带些参数过去才行

  https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=(日期)&leftTicketDTO.from_station=(始发地)&leftTicketDTO.to_station=(目的地)&purpose_codes=ADULT

这个是可以直接访问取到数据的

 https://kyfw.12306.cn/otn/lcxxcx/query?purpose_codes=ADULT&queryDate=2016-09-01&from_station=SHH&to_station=BJP

12306 城市站点 数据文件件

城市数据文件 城市数据文件

前台输入始发地和目的地,然后再数据文件中找出站台相对应的代码,拼装到url中,就OK了!

Node.js 中封装成一个插件

// 使用 各种接口
// 引入 http 模块
var https = require('https');
// 简单的HTTP请求的客户端 发送请求
var request = require('request');
// 对时间进行格式化
var moment = require('moment');
// 转换字符编码的纯JavaScript。
var iconv = reuire('iconv-lite');

// 火车票查询,导出该实例
exports.railway = function(req,res){
  // 将请求的 body 部分赋值给obj变量,body中包含了前台传递过来的数据
  var obj = req.body;
  // 请求接口的 参数
  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';

  // 调用请求接口时,相关配置参数
  //生成GET请求的参数
  var options = {
      hostname: 'kyfw.12306.cn',
      port: 443,
      path: url,
      method: 'GET',
      rejectUnauthorized: false        // 重点 必须把证书验证屏蔽掉
  };

  // 放送请求,调用接口,返回我们所需的数据
  var request = https.request(options,function(response){
    // 设置返回数据编码
    response.setEncoding('utf8');

    var str = '';
    // 返回数据 拼接
    response.on('data',function(chunk){
      str += chunk;
    });
    // 完成拼装 返回响应数据 进行格式化成json对象
    response.on('end',function(){
      res.json(JSON.parse(str));
    });

    // 错误信息 打印在终端
    request.on('error',function(err){
      console.log('错误信息',err.emssage);
    });

    // 请求操作 完成后 需要关闭请求资源
    requset.end();

  });
};
上一篇 下一篇

猜你喜欢

热点阅读