使用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