问题描述
各位大侠,先问好。小弟被这样一个问题困扰,请各位指教。我想用HttpClient模拟登陆一个信息管理系统抓取一些网络数据。从网上找到了一份开心网的登陆源码,进行相关修改。访问的MIS系统采用的是Frmae布局。当我输入用户名,密码以及浏览器信息之后,获得访问session之后,转向到MIS页面的时候,//登录页面StringLOGON_SITE="http://domain/login";PostMethodpost=newPostMethod(LOGON_SITE);NameValuePairie=newNameValuePair("User-Agent","Mozilla/4.0(compatible;MSIE6.0;Windows2000)");NameValuePairurl=newNameValuePair("url","/home/");NameValuePairusername=newNameValuePair("myid",userName);NameValuePairpassword=newNameValuePair("mypsd",passwd);post.setRequestBody(newNameValuePair[]{ie,url,username,password});client.executeMethod(post);System.out.println("******************************登录******************************");Cookie[]cookies=client.getState().getCookies();client.getState().addCookies(cookies);post.releaseConnection();System.out.println("******************************页面转向******************************");StringnewUrl="http://domain/index.jsp";System.out.println("==========Cookies============");inti=0;for(Cookiec:cookies){System.out.println(++i+":"+c);}client.getState().addCookies(cookies);post.releaseConnection();GetMethodget=newGetMethod(newUrl);get.setRequestHeader("Cookie",cookies.toString());client.executeMethod(get);StringresponseString=get.getResponseBodyAsString();//登录后首页的内容System.out.println(responseString);总是获得这样的一段代码if(top.location!=self.location){top.location=self.location;}window.location.ref="/login";我想问的是,是不是因为这一段代码进行屏蔽,让我无法取得想访问的index.jsp?是否还有其他办法访问index.jsp页面?谢谢各位
解决方案
解决方案二:
自己顶一下
解决方案三:
那应该是因为你没登录。服务器判断你没登录,自动搞出一段跳转到/login的js代码。你尝试一下先用httpclient登录,再访问
解决方案四:
该回复于2011-02-22 16:31:33被版主删除
解决方案五:
引用2楼shine333的回复:
那应该是因为你没登录。服务器判断你没登录,自动搞出一段跳转到/login的js代码。你尝试一下先用httpclient登录,再访问
您说我没有用httpclient登陆?下面这段代码执行之后,不能说明我已经登陆了吗?client.executeMethod(post);System.out.println("******************************登录******************************");
解决方案六:
引用2楼shine333的回复:
那应该是因为你没登录。服务器判断你没登录,自动搞出一段跳转到/login的js代码。你尝试一下先用httpclient登录,再访问
如何判定我登陆成功呢?intstatus=client.executeMethod(post);返回status=200,这是否代表我登陆成功了?能否说得具体一点,问题依然没有解决
解决方案七:
目前的问题,是能够正常的登陆POST显示200,但是,貌似我输入密码无论正确与否,都能够显示200.除了登陆界面之外,再进入任何其他的界面都显示权限不足。不知道为什么。