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

问题描述

各位大侠,先问好。小弟被这样一个问题困扰,请各位指教。我想用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.除了登陆界面之外,再进入任何其他的界面都显示权限不足。不知道为什么。

时间: 2024-09-18 04:18:38

求教一个用HttpClient访问管理系统的问题!的相关文章

求教一个文件夹访问权限的问题

问题描述 求教一个文件夹访问权限的问题 很诡异的情况,我在administrator用户下,看到D:Louzhu这个文件夹,对Users组是有完全控制权限的,而且我也确实是这样修改过. 但当我切换到域账户下,再看D:Louzhu这个同样的文件夹,Users组就是无读写权限.域账户就在Users组里面. 这到底是怎么回事呢?急求. 可能出现问题的地方: 本地用户与组里面,除了Administrator外,还有个Administrators组: 这台计算机,曾经从一个域,切换到另一个域. 解决方案

c++-求教大神!访问一个ftp文件

问题描述 求教大神!访问一个ftp文件 C++在程序中访问一个ftp文件 ftp://192.168.1.212/ 时,怎么才可以不是通过浏览器来打开,而是弹出一个像我的电脑那样的文件夹?我用的是VS2008. 或者有没有什么方法可以先弹出我的电脑,然后再在程序中把地址输入 我的电脑 地址栏? 解决方案 ShellExecute(NULL,L"open",L"explorer", L"ftp://192.168.1.212",NULL,SW_SH

清单文件-使用HttpClient访问网络

问题描述 使用HttpClient访问网络 使用HttpClient访问网络 清单文件 android:minSdkVersion="14" android:targetSdkVersion="19" /> 出错 用 android:minSdkVersion="9" /> 就没错.请问是什么问题 解决方案 从11开始,就不允许和在主线程中请求了 解决方案二: 关于这个异常可以定义一个线程,把http请求的部分放在线程里去做. 解决方

我的C#做一个C/S数据管理系统

问题描述 我的C#做一个C/S数据管理系统,数据库是采用ACCESS,只有5个客户端,可我就是不明白这个数据连接字符怎么写,如果同时访问数据的话,会不会出错 解决方案 解决方案二:连接字符串参见access?如果在ntfs分区下,给access文件everyone读写权限.其他的应该没有甚么问题

写一个java程序访问url,并根据stream算出响应时间

问题描述 写一个java程序访问url,并根据stream算出响应时间,java.net.URL; 解决方案 用httpclient模拟访问,要不我给你传个例子吧.解决方案二:import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.URL;public class Test{public static void main(String[] a

限制一个Ip只能访问一次的asp代码

  限制一个Ip只能访问一次,转载于bacde的技术博客,现在将asp代码分享给大家: <% '///////////////////////////////////////////////////// '// // '//作用:一个IP地址只允许访问本页一次 // '//作者:BaCde 2010年3月1日 // '//引用:<!-- #include file="Check_Ip.asp" --> // '// // '//////////////////////

安卓 网络-为什么我用httpclient访问不到网络呢

问题描述 为什么我用httpclient访问不到网络呢 public class MainActivity extends Activity { public static final int SHOW_RESPONSE=1; TextView text; private Handler handler=new Handler(); public void handleMessage(Message msg){ switch(msg.what){ case SHOW_RESPONSE: Stri

源码-求教一个vc中float转化的问题!

问题描述 求教一个vc中float转化的问题! 50C buffer[0] = 0xc6;buffer[1] = 0xc3;buffer[2] = 0x90;buffer[3] = 0x30; 哪位大神能给了源码吗,谢谢了!!不会搞,急死了! 解决方案 请教一个VC问题 解决方案二: 数据的在计算机中不是用二进制表示的嘛,4位16进制就需要用32位二进制来表示:然后低字节存地位,高字节存高位,也就是传说中的"小端模式":这个不需要什么源码,理解到了就行:理解不到就去看书 解决方案三:

做一个简单的访问来源统计

访问|统计 我们知道,Request.ServerVariables("HTTP_REFERER")可以获取来源网站的地址,因此我们可以通过这个数据来做一个小小的来源访问统计 新建一个数据库Sys_Referer:if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Sys_Referer]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop tabl