获取需要登录的网页信息,session保持方法
2013-04-11 14:38
162 查看
例如,登录网站后才能查看的内容,使用HttpURLConnection获取网页内容,登录是1.jsp,获取信息是x.jsp。
网上能搜到不少资料,一直没有成功,终于找到了原因:登录时,验证成功后,后台会自动转向到默认显示的页面。
我们在使用IE时是没问题的:
程序自动调用的是1.jsp,但是,1.jsp 登录 -- 成功转向--2.jsp,在1向2的转发过程中由于没有保持session,所以我们最后拿到的是2.jsp的sessionID!而2.jsp的内容是“您的登录信息已失效,请重新登录”。 这样实际上使用2.jsp的sessionID获取x.jsp的内容,当然是不行的。
所以在登录的过程中要增加:HttpURLConnection.setFollowRedirects(false);用以禁止程序跟随自动跳转。程序片段如下:
网上能搜到不少资料,一直没有成功,终于找到了原因:登录时,验证成功后,后台会自动转向到默认显示的页面。
我们在使用IE时是没问题的:
程序自动调用的是1.jsp,但是,1.jsp 登录 -- 成功转向--2.jsp,在1向2的转发过程中由于没有保持session,所以我们最后拿到的是2.jsp的sessionID!而2.jsp的内容是“您的登录信息已失效,请重新登录”。 这样实际上使用2.jsp的sessionID获取x.jsp的内容,当然是不行的。
所以在登录的过程中要增加:HttpURLConnection.setFollowRedirects(false);用以禁止程序跟随自动跳转。程序片段如下:
public String getLoginSessionId(String surl,String un,String pwd) throws IOException{ String sid = ""; HttpURLConnection uc = null; InputStream is = null; try{ URL url = new URL(surl); HttpURLConnection.setFollowRedirectes(false); uc = (HttpURLConnection)url.openConnection(); //这里为了简化,直接使用串接url的方式提交用户名密码,即没有使用用户、密码这两个参数 is = uc.getInputStream(); sid = uc.getHeaderField("Set-Cookie"); sid = sid.split(";")[0];//此处简化处理 return sid; }catch(Exception e){ return null; }finally{ try{if(is !=null) is.close();}catch(Exception e){} } } public String getHtml(String url,String sid){ //...省略 } public static void main(String[] args){ ... String sid = x.getSessionId("http://www.xx.com/login.jsp?username=x&password=xxxx","",""); String html = x.getHtml(url,sid); }
相关文章推荐
- C#网页自动登录和提交POST信息的多种方法
- C#网页自动登录和提交POST信息的多种方法
- 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法.
- java.net模拟用户登录网页并维持session的方法
- Python使用正则表达式获取网页中所需要的信息
- 微信开发笔记——微信网页登录授权,获取用户信息
- 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法.
- python3.3三种简单获取网页信息的方法
- HttpClient 4.0 保持登录session 访问网页
- 自动登录TP-LINK路由器,获取所有信息,重启等等,实用方法 推荐
- C#获取网页信息核心方法(入门一)
- Spring Security获取已登录的用户信息的两种方法
- 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法
- php获取网页header信息的4种方法
- 如何在Service层获取用户session中保存的用户信息的方法(Filter+ThreadLocal)
- 微信开发笔记——微信网页登录授权,获取用户信息
- C#网页自动登录和提交POST信息的多种方法
- Django微信公众号开发(一)公众号内网页授权登录后微信获取用户信息
- #网页自动登录和提交POST信息的多种方法