12306模拟登录
2015-12-18 17:59
211 查看
在模拟12306登录及购票的时候,不要登录或者购票的次数测试频率太高,否则直接封IP。现在12306验证码的问题很复杂,我并不会破解,所以只能做需要带验证的模拟登录和购票。
在模拟的时候,在开发者工具栏中查看提交的get或者post数据。如果只是查看网络提交或者接收数据用Httpfox最好,他可以把全部的请求显示出来。用fixbug查看,发生了网页跳转的中间请求不能显示出来。现在来分析登录过程请求的先后顺序以及请求参数。
验证码的地址 https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew?module=login&rand=sjrand 后面还有一个随机数,这个随机数我没添加,也是可以请求的,不会报错,他只是为了防止缓存。
登录过程中的请求顺序
![](https://img-blog.csdn.net/20151218174156650)
(1)第一个链接是检查验证码是否正确
第一个参数randCode是根据验证码图片来获取的。9张小图片,每张小图片都有一个像素范文。第一张就是需要选中图片的题目,后面8张就是需要选择的答案。我在做swing时,将验证码图片进行切割,将每张小图片按顺序放入9个JButton中,作为按钮的背景。选中哪些图片,则就会有相应的事件来执行,将对应的对象像素放入数组中,然后在登录的时候进行处理。图片效果如下:
![](https://img-blog.csdn.net/20151225205324476)
登录前会先访问https://kyfw.12306.cn/otn/passcodeNew/checkRandCodeAnsyn ,判断验证码和参数是否正确。返回的结果为:{“validateMessagesShowId”:”_validatorMessage”,”status”:true,”httpstatus”:200,”data”:{“result”:”1”,”msg”:”TRUE”},”messages”:[],”validateMessages”:{}} ,如果有”msg”:”TRUE”,则验证码正确。
(2)进行登录,地址为https://kyfw.12306.cn/otn/login/loginAysnSuggest 参数为:
![](https://img-blog.csdn.net/20151225210836872)
其中randCode是验证时候发送的验证码,采用post方法传递参数,键的名字一定要对,与表单中的大小写都要相同。返回数据:{“validateMessagesShowId”:”_validatorMessage”,”status”:true,”httpstatus”:200,”data{“otherMsg”:”“,”loginCheck”:”Y”},”messages”:[],”validateMessages”:{}} ,返回的json数据中有 “loginCheck”:”Y”,则登录信息正确。
(3)登录成功的最后一步,地址https://kyfw.12306.cn/otn/login/userLogin 。发送的数据较为简单:
![](https://img-blog.csdn.net/20151225210039693)
值为空,不会有数据返回。
到此为止登录就分析完毕。总体来说登录还是很简单的,没有复杂的参数需要传递。
在模拟的时候,在开发者工具栏中查看提交的get或者post数据。如果只是查看网络提交或者接收数据用Httpfox最好,他可以把全部的请求显示出来。用fixbug查看,发生了网页跳转的中间请求不能显示出来。现在来分析登录过程请求的先后顺序以及请求参数。
验证码的地址 https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew?module=login&rand=sjrand 后面还有一个随机数,这个随机数我没添加,也是可以请求的,不会报错,他只是为了防止缓存。
登录过程中的请求顺序
(1)第一个链接是检查验证码是否正确
第一个参数randCode是根据验证码图片来获取的。9张小图片,每张小图片都有一个像素范文。第一张就是需要选中图片的题目,后面8张就是需要选择的答案。我在做swing时,将验证码图片进行切割,将每张小图片按顺序放入9个JButton中,作为按钮的背景。选中哪些图片,则就会有相应的事件来执行,将对应的对象像素放入数组中,然后在登录的时候进行处理。图片效果如下:
登录前会先访问https://kyfw.12306.cn/otn/passcodeNew/checkRandCodeAnsyn ,判断验证码和参数是否正确。返回的结果为:{“validateMessagesShowId”:”_validatorMessage”,”status”:true,”httpstatus”:200,”data”:{“result”:”1”,”msg”:”TRUE”},”messages”:[],”validateMessages”:{}} ,如果有”msg”:”TRUE”,则验证码正确。
(2)进行登录,地址为https://kyfw.12306.cn/otn/login/loginAysnSuggest 参数为:
其中randCode是验证时候发送的验证码,采用post方法传递参数,键的名字一定要对,与表单中的大小写都要相同。返回数据:{“validateMessagesShowId”:”_validatorMessage”,”status”:true,”httpstatus”:200,”data{“otherMsg”:”“,”loginCheck”:”Y”},”messages”:[],”validateMessages”:{}} ,返回的json数据中有 “loginCheck”:”Y”,则登录信息正确。
(3)登录成功的最后一步,地址https://kyfw.12306.cn/otn/login/userLogin 。发送的数据较为简单:
值为空,不会有数据返回。
到此为止登录就分析完毕。总体来说登录还是很简单的,没有复杂的参数需要传递。
相关文章推荐
- 12306 出招抢票软件,技术黄牛生意要“黄”?
- 12306验证码破解思路分享
- java抓取12306信息实现火车余票查询示例
- 关于”12306 外包给阿里巴巴做是否可行“的问题的想法
- 本人对12306系统优化的一点建议
- 12306:小宝到农民工的命
- 12306模拟登录
- 12306数据泄露,12306数据库遭网络公开下载,这里提供个账号安全监测工具
- 解决12306订票和票贩子问题的办法
- 黑色星期五,就连知名商务网站都招架不住,你的网站呢?
- 使用网页操作助手制作自己的火车票抢票工具
- 没抢到票?试试这个软件,随时随地自动抢票!
- 谷歌调试工具祝你一臂之力买火车票,简单安全方便
- 为什么在12306买火车票要装根证书?(转)
- 12306 网站新版 | 12306 新网址 | 试运行
- 12306网站新版上线试运行公告
- 简述12306网站春运抢票插件的工作原理
- 12306 外包给阿里巴巴、IBM 等大企业做是否可行?
- 别再吐槽了:12306网站已接近技术极限
- 12306订票客户端 FOR .NET 演示项目 【1】项目概况