求教一个用HttpClient访问管理系统的问题!

stillfire 2011-02-22 11:42:10
各位大侠,先问好。
小弟被这样一个问题困扰,请各位指教。

我想用HttpClient模拟登陆一个信息管理系统抓取一些网络数据。从网上找到了一份开心网的登陆源码,进行相关修改。

访问的MIS系统采用的是Frmae布局。
当我输入用户名,密码以及浏览器信息之后,获得访问session之后,转向到MIS页面的时候,

//登录页面
String LOGON_SITE="http://domain/login";
PostMethod post = new PostMethod(LOGON_SITE);
NameValuePair ie = new NameValuePair("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)");
NameValuePair url = new NameValuePair("url", "/home/");
NameValuePair username = new NameValuePair("myid",userName);
NameValuePair password = new NameValuePair("mypsd", passwd);
post.setRequestBody(new NameValuePair[] { ie,url,username, password});
client.executeMethod(post);
System.out.println("******************************登录******************************");
Cookie[] cookies = client.getState().getCookies();
client.getState().addCookies(cookies);
post.releaseConnection();
System.out.println("******************************页面转向******************************");
String newUrl="http://domain/index.jsp";

System.out.println("==========Cookies============");
int i=0;
for(Cookie c:cookies){
System.out.println(++i+": "+c);
}
client.getState().addCookies(cookies);
post.releaseConnection();
GetMethod get = new GetMethod(newUrl);
get.setRequestHeader("Cookie", cookies.toString());
client.executeMethod(get);
String responseString = get.getResponseBodyAsString();
//登录后首页的内容
System.out.println(responseString);


总是获得这样的一段代码

if(top.location!=self.location){
top.location=self.location;
}
window.location.ref="/login";


我想问的是,是不是因为这一段代码进行屏蔽,让我无法取得想访问的index.jsp ?
是否还有其他办法访问index.jsp页面?谢谢各位
...全文
117 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
stillfire 2011-02-25
  • 打赏
  • 举报
回复
目前的问题,是能够正常的登陆POST显示200,但是,貌似我输入密码无论正确与否,都能够显示200.

除了登陆界面之外,再进入任何其他的界面都显示权限不足。不知道为什么。
stillfire 2011-02-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 shine333 的回复:]

那应该是因为你没登录。

服务器判断你没登录,自动搞出一段跳转到/login的js代码。

你尝试一下先用httpclient登录,再访问
[/Quote]
您说我没有用httpclient登陆?

下面这段代码执行之后,不能说明我已经登陆了吗?
client.executeMethod(post);
System.out.println("******************************登录******************************");

stillfire 2011-02-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 shine333 的回复:]

那应该是因为你没登录。

服务器判断你没登录,自动搞出一段跳转到/login的js代码。

你尝试一下先用httpclient登录,再访问
[/Quote]

如何判定我登陆成功呢?
int status=client.executeMethod(post);
返回status=200,这是否代表我登陆成功了?

能否说得具体一点,问题依然没有解决

shine333 2011-02-22
  • 打赏
  • 举报
回复
那应该是因为你没登录。

服务器判断你没登录,自动搞出一段跳转到/login的js代码。

你尝试一下先用httpclient登录,再访问
stillfire 2011-02-22
  • 打赏
  • 举报
回复
自己顶一下

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧