事先声明,我写这篇,只是为了分享一下,登录网站不止有使用cookies这一种方法,还有一种使用随机码的方法,并没有泄露“商业机密”的想法,本人才疏学浅,只是在站在巨人的肩膀上,摘到了一个小小的苹果。。。
毕设ing...
有一模块就是获取教务管理系统里面对应学号的学生信息,并有后续的操作!正常情况下,为了实现这些功能必须要求用户正确登陆!有一段时间学习HttpClient,并在网上寻找关于HttpClent模拟登录网站的blog和demo学习,但是找的很多都是这样说“在获取验证码(教务系统需要输入验证码,方能登录)的时候,并获取到cookies,得到这些cookies,然后在后继的操作过程中将这些cookies加入到Header就行了”,有了这样的思路就实现以下,但是我在获取cookies的时候,得到的是“null”
<span style="font-family:Microsoft YaHei;font-size:12px;">List<Cookie> cookies = httpClient.getCookieStore().getCookies();</span>因为Httpclient也是刚刚使用,我以为是我的代码错误,各种调试,没有问题。最后我使用火狐浏览器,firefox登录看请求信息,奇怪的是,竟然发现没有cookies,如图
这很奇怪,在HttpClent的群里问了问,有的说是调试工具的问题,我想了想也是,那就试试HttpWatch,FireBug,谷歌浏览器,还有位大哥介绍使用Fiddler2。结果依然没有cookies,苦笑了一番,但是发现了Fiddler2这个工具不错,解析的非常详细,有兴趣的可以下载使用。
平时也不是都趴在毕设上,过了几天吧,实在想不通头绪,就找到正方软件公司客服,想问问这一块是如何实现不用cookies登录的(后来证实我这种做法太搞笑了,人家说是商业机密,不能外传),有点绝望,抱着试试看的态度在网上直接搜索模拟登陆方正系统,嘿,竟然搜出好多条目,最终找到一个靠谱的Blog
通过这个Blog我终于知道了登陆的秘密
在登陆界面,当验证码出来的时候,下面的响应头里有这个属性“Location”,在后面的值中有一串长度为24的随机码,此时,地址栏里的url也加上了这段随机码!
通过这个随机码就可以进行后续的操作!
果然是这样,通过这一方法,我成功的登录进去!
使用Httpclient模拟登陆正方软件股份有限公司开发的教务管理系统
原文地址:http://blog.csdn.net/qqhjqs/article/details/44961435