httpclient模拟登陆具体实现(使用js设置cookie)


Posted in Javascript onDecember 11, 2013

httpclient模拟登陆(使用js设置cookie)

<html> 
<meta http-equiv='Content-Type' content='text/html; charset=gb2312'> 
<link rel=stylesheet type=text/css href='/bbs.css'> 
<script>document.cookie='utmpnum=51;path=/;domain=.' + window.location.host</script> 
<script>document.cookie='utmpkey=20154732;path=/;domain=.' + window.location.host</script> 
<script>document.cookie='utmpuserid=yay;path=/;domain=.' + window.location.host</script> 
<meta http-equiv='Refresh' content='0; url=/firstpage.php'>

h4ttpclient 4.3:

最简单的方法就是通过得到的cookie定制一个httpclient,根据上面的例子,方法如下:

CookieStore cookieStore = new BasicCookieStore(); for (int i = 0; i < 3; i++) { 
String name; 
String value; 
int flag=s.indexOf("document.cookie"); 
s=s.substring(flag+17); 
flag=s.indexOf('='); 
name=s.substring(0, flag); 
value=s.substring(flag+1, s.indexOf(';')); 
BasicClientCookie cookie = new BasicClientCookie(name, 
value); 
cookie.setVersion(0); 
cookie.setDomain(".www.zju88.org"); //这个网址对应的是<span style="font-family: Arial, Helvetica, sans-serif;">window.location.host的返回值</span> 
cookie.setPath("/"); 
cookieStore.addCookie(cookie); 
} 
// Set the store 
CloseableHttpClient httpclient = HttpClients.custom() 
.setDefaultCookieStore(cookieStore) 
.build();

android:

我找了半天也没找到上面方法对应的API,只能在每次访问前加cookie了

String cookie=""; 
for (int i = 0; i < 3; i++) { 
String name; 
String value; 
int flag=s.indexOf("document.cookie"); 
s=s.substring(flag+17); 
flag=s.indexOf('='); 
name=s.substring(0, flag); 
value=s.substring(flag+1, s.indexOf(';')); 
cookie +=name +"="+value; 
if(i!=2) 
cookie+=";"; 
} /* 
* 每次访问网络 
*/ 
HttpGet httpget = new HttpGet(url); 
httpget.addHeader("Cookie",cookie); 
//如果httpclient中已经有cookie可能需要设置httpclient的cookie策略,具体可查官方API (: 
HttpResponse response = httpclient.execute(httpget);

ps:如果是用java SE,也可以使用htmlunit类,它会执行js。
Javascript 相关文章推荐
Javascript中查找不以XX字符结尾的单词示例代码
Oct 15 Javascript
javascript计算用户打开网页的停留时间
Jan 09 Javascript
JS验证逗号隔开可以是中文字母数字
Apr 22 Javascript
AngularJS 文件上传控件 ng-file-upload详解
Jan 13 Javascript
JavaScript简单计算人的年龄示例
Apr 15 Javascript
浅谈Angular HttpClient简单入门
May 04 Javascript
JS中appendChild追加子节点无效的解决方法
Oct 14 Javascript
Vue Echarts实现可视化世界地图代码实例
May 07 Javascript
javascript异步编程的六种方式总结
May 17 Javascript
Vue的props父传子的示例代码
May 20 Javascript
Vue左滑组件slider使用详解
Aug 21 Javascript
jQuery实现简单QQ聊天框
Aug 27 jQuery
js判断客户端是iOS还是Android等移动终端的方法
Dec 11 #Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
Dec 11 #Javascript
按下Enter焦点移至下一个控件的实现js代码
Dec 11 #Javascript
JS中window.open全屏命令解析及使用示例
Dec 11 #Javascript
js的匿名函数使用介绍
Dec 11 #Javascript
jquery ajax jsonp跨域调用实例代码
Dec 11 #Javascript
JavaScript Math.ceil() 函数使用介绍
Dec 11 #Javascript
You might like
简单的页面缓冲技术
2006/10/09 PHP
PHP数据类型之布尔型的介绍
2013/04/28 PHP
php中让上传的文件大小在上传前就受限制的两种解决方法
2013/06/24 PHP
php遍历CSV类实例
2015/04/14 PHP
php中Snoopy类用法实例
2015/06/19 PHP
深入解析PHP中foreach语句控制数组循环的用法
2015/11/30 PHP
laravel框架使用阿里云短信发送消息操作示例
2020/02/15 PHP
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
2010/11/20 Javascript
MyEclipse取消验证Js的两种方法
2013/11/14 Javascript
浅谈javascript 函数属性和方法
2015/01/21 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
2016/04/17 Javascript
jQuery子元素过滤选择器用法示例
2016/09/09 Javascript
vue2.0 实现页面导航提示引导的方法
2018/03/13 Javascript
JavaScript 隐性类型转换步骤浅析
2018/03/15 Javascript
浅谈super-vuex使用体验
2018/06/25 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
2019/05/10 Javascript
js实现双色球效果
2020/08/02 Javascript
Python3 入门教程 简单但比较不错
2009/11/29 Python
单利模式及python实现方式详解
2018/03/20 Python
python正则表达式匹配[]中间为任意字符的实例
2018/12/25 Python
python打印n位数“水仙花数”(实例代码)
2019/12/25 Python
在python中利用pycharm自定义代码块教程(三步搞定)
2020/04/15 Python
利用python为PostgreSQL的表自动添加分区
2021/01/18 Python
python实现马丁策略回测3000只股票的实例代码
2021/01/22 Python
CSS类名支持中文命名的示例
2014/04/04 HTML / CSS
前端面试必备之html5的新特性
2017/09/05 HTML / CSS
印度和世界各地的精美产品:Ikka Dukka
2018/02/12 全球购物
李维斯牛仔裤英国官方网站:Levi’s英国
2019/10/10 全球购物
简历中自我评价分享
2013/10/09 职场文书
业务员薪酬管理制度
2014/01/15 职场文书
人力资源管理毕业求职信
2014/08/05 职场文书
车贷收入证明范本
2014/09/14 职场文书
2014党员四风对照检查材料思想汇报
2014/09/17 职场文书
2015年个人剖析材料范文
2014/12/29 职场文书
村干部任职承诺书
2015/01/21 职场文书
SQL实现LeetCode(175.联合两表)
2021/08/04 MySQL