4.安卓网页表单登陆初探

本文介绍了如何在安卓上实现网页表单登陆,通过抓包工具分析登陆过程,理解POST和GET请求、参数传递、SESSION ID的重要性。使用HttpClient和Jsoup进行模拟操作,解决身份验证问题,实现自定义的手机登陆客户端。
摘要由CSDN通过智能技术生成

学校的网络系统上总有很多需要登陆的地方,但死板的页面又不是很友好,往往需要打开PC通过层层页面登陆,却只是为了查询某个很短小的信息,所以很早就想把整个查询过程做成一个客户端,方便你我他。但是开始总觉得无从下手,因为当时什么都不懂,基于这个需求就反复查询了一些资料,终于,在弄清楚了一些概念和动用了抓包工具后,我发现我的想法离实现一步步靠近了......

首先用抓包工具(像HTTP Analyzer就比较好用)在后台记录,自己在前台手动登陆一次,抓取封包后分析整个过程

主要要点如下:

1.整个过程访问了几个页面

2.POST or GET

3.请求的是哪个页面

4.传了哪些参数

5.是否有Redirect(301,302)

6.后续的操作是否用到第一步获取的的COOKIES,主要是SESSION ID

服务器往往通过SESSION ID判断你是否登陆

(如果出现6的情况,就稍微复杂一些了)


后续用HttpClient模拟相应的操作即可

http://ipjmc.iteye.com/blog/1577495 这里转载了HttpClient一个很简单的例程

获取内容可以使用强大的Jsoup包,或者只是文字信息,干脆使用同样强大的正则

前五项通过HttpClient+Jsoup都能解决

我们主要来看看碰到6的情况怎么办

List<Cookie> cookies = httpClient.getCookieStore().getCookies();    
	 			        if (cookies.isEmpty()) {    
	 			        Log.i(TAG, "NONE");    
	 			        } else 
	 			        {                   
	 			        for (int i = 0; i < cookies.size(); i++) {    
	 			        //保存cookie     
	 			        
	 			        Log.d(TAG, cookies.get(i).getName()+"="+cookies.get(i).getValue() ); 
	 			        Log.d(TAG, cookies.get(i).getName()+"=" );    
	 			        } 
	 			        cookie=cookies.get(0).getValue();

这里通过调试发现序列为0的恰好是SESSION ID就直接用了


获取出来了

后续再连接其他页面时,就可以把这个SESSION ID加到HEADER里带着登陆身份为所欲为了

getMethod1.setHeader("Cookie", "JSESSIONID="+cookie);
	 				        HttpResponse response = httpClient.execute(getMethod1); //发起GET请求  
	 				        Header location=response.getFirstHeader("location");
	 				        if (location!=null) Log.i(TAG, location.getValue().toString());
	 				       
	 				        result=EntityUtils.toString(response.getEntity(),"utf-8");
	 				        Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //获取响应码  

这样一来,以后如果有什么网站没有提供登陆API,我们也可以自制手机登陆客户端了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值