使用httpClient进行登录,网上找代码很多,但真实性。可靠性却并不高。找到一个登陆开心网的,很明显把cookie用错了,在网上贴个代码是那么重要的事情嘛,而且同一份代码到处都是,哪里是原创都分辨不了,如果是好的,有用的,还罢,如果不是,那意义何在呢,招人骂吗?
因工作需要,要从别的系统抓数据,经过学习,选择了httpClient+htmlParser,看的是ibm社区的文章,盛名之下,招摇撞骗还是比较容易的。
基础的东西就不说了,new了client和method,加了用户名密码 ,去登陆,不对。又加各种请求头,参数,能发现的都试了,结果依旧。给错的密码也返回200,因为他找到jsp就认为是200了,根本没有做登陆。而且不该是200,应该是302,登陆后肯定转发的。想不通为什么200。在csdn找啊找,终于看到一个帖子(http://topic.csdn.net/u/20090105/17/dd8c1875-934e-4049-b5fe-706d78f6cb75.html),一语惊醒梦中人。j2ee的系统最后执行请求的都是action,把请求提交给login.jsp去执行时没用的,登陆要提交给登陆的action,struts或者webwork系统,都是访问action,然后返回jsp。不同于php,全都是页面,没j2ee那种“后台”的概念。
把url换成action,问题就不存在了 ,也302了,也看到转发了。
PS:自己写登陆开心网,给我408,不过应该没工夫研究了。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sysmaid/archive/2009/12/30/5105039.aspx