解析12306订票流程-互联轨道网_中国铁路信息网_网上订票_招聘_铁道新闻_铁路局官网
中国铁路信息网[www.RailNew.com]覆盖了中国北京,上海,成都,南昌,南宁,沈阳,济南,兰州,郑州,武汉,西安,太原,昆明,哈尔滨,呼和浩特,乌鲁木齐,广州,青藏及国家铁路局的最新新闻资讯及权威铁路招聘信息,也为广大人民提供铁路订票,铁路学校,铁道学院官网信息,是铁路互联网+的新模式
当前位置:互联轨道网_中国铁路信息网 > 12306订票 > 解析12306订票流程

解析12306订票流程

互联轨道网前言每当春节临近时,因为网络的方便,访问12306购买火车票回家过年成了很多人的首选。但由于12306的种种不给力,

解析

前言 每当春节临近时,因为网络的方便,访问12306购买火车票回家过年成了很多人的首选。但由于12306的种种不给力,给那些在官网刷票的人带来了很多的不便。从2011年未12306上线起,连续几年回家我都是靠网上购票,今年也不例外;我记得11年时我使用的是官网直接购票,到了12年则使用了新出的木鱼抢票助手,而今年我用了360与猎豹两款主流抢票浏览器,还发动了几位朋友一起帮忙,才买到了一张差强人意的票,现在感觉买票是越来越困难。而就在前几天媒体还曝出了商业黄牛使用假身份证生成器10分钟钞杀1000多张票的新闻,让人吃惊不已。于是就萌生了自己写一个抢票应用的念头,最开始设想的就是本地桌面应用,而非浏览器插件,个人觉得本地应用始终比浏览器插件敏捷,因为本地应用可以精确稳定的请求有用的链接,过滤图片和CSS等前台无用请求,可以节省网络消耗时间。于是我花了一段时间将12306的整体订票流程解析了一遍,其间还经历了一次12306的改版,幸好主体流程改动不是很大,终算有点收获。 粗略的将12306的流程划分为:登录、查询和订票三大模块,下面就这三大模块逐一说明: 1.登录 登录12306请求的URL是:https://kyfw.12306.cn/otn/login/init,可以使用Firbug抓取一下它的请求头,得到的response响应内容如下:

解析12306订票流程

从中可以看到Set-Cookie信息,也就是说,如果想要登录就必须先请求https://kyfw.12306.cn/otn/login/init这个链接,以获取服务端设置的Cookie信息,而有了该Cookie信息就可以将其保存,以备下步的请求使用。 再来分析一下它的页面HTML与其对应处理登录的Javascript脚本文件(https://kyfw.12306.cn/otn/resources/merged/login_js.js),得到如下流程: 1.用户点击登录提交时先要验证请求一下:https://kyfw.12306.cn/otn/login/loginAysnSuggest链接,用于判断当前网络环境是否可以登录,得到JSON数据(通过Firebug抓包):  

[plain] 

派生到我的代码片

 

{  

    "validateMessagesShowId":"_validatorMessage"  

    "status":true  

    "httpstatus":200,  

    "data":{  

        "loginCheck":"Y"  

    },  

    "messages":[],  

    "validateMessages":{}  

}  

  这里通过判断data.loginCheck是否为字符串Y判断用户是否可以登录,如不能登录,则显示messages中的内容. 2.当用户登录信息检查成功时,则POST请求https://kyfw.12306.cn/otn/login/userLogin,得到登录请求后的HTML,对应请求的参数为:  

[plain] 

派生到我的代码片

 

"loginUserDTO.user_name":  // 用户名  

"userDTO.password":        // 密码  

"randCode":                // 验证码  

注:登录图片验证码的获取地址可以从登录页面的HTML中得到为:   3.通过解析获取的HTML可以根据id为login-txt的<span>标签来判断是否登录成功,登录成功的对应的HTML内容为:  

[html] 

派生到我的代码片

 

<span class="login-txt" style="color: #666666">  

    <span>意见反馈:  

         <a class="cursor colorA" href="mailto:12306yjfk@rails.com.cn">  

             12306yjfk@rails.com.cn  

         </a>您好,  

    </span>  

    <a id="login_user" href="http://shaozhuqing.com/otn/index/initMy12306"   

       class="colorA" style="margin-left:-0.5px;"><span>登录成功用户名</span></a>|  

    <a id="regist_out" href="http://shaozhuqing.com/otn/login/loginOut">退出</a>  

</span>  

失败的内容为:  

本文标签:

本文关键词:解析,解析12306订票流程

下一篇:12306电话订票流程

上一篇:有人误读铁路订票规定 12306不能帮亲友买票?谣言

相关内容

焦点 推荐 专题

12306订票

解析12306订票流程:【解析,解析12306订票流程】前言每当春节临近时,因为网络的方便,访问12306购买火车票回家过年成了很多人的首选。但由于12306的种种不给力,

Copyright © 2015-2017 互联轨道网_中国铁路信息网_网上订票_招聘_铁道新闻_铁路局官网[www.railnew.com]版权所有

[中国铁路信息网]是铁路局订票、招聘、新闻发布的官方平台。致力于铁路行业权威、快速、高效新闻发布。铁路信息网上有最新的铁路招聘信息,国内外铁路新闻资讯。