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 相关文章推荐
js 小数取整的函数
May 10 Javascript
JS中showModalDialog 的使用解析
Apr 17 Javascript
js设置组合快捷键/tabindex功能的方法
Nov 21 Javascript
js实现宇宙星空背景效果的方法
Mar 03 Javascript
JavaScript中的函数声明和函数表达式区别浅析
Mar 27 Javascript
javascript实现2016新年版日历
Jan 25 Javascript
JS前端加密算法示例
Dec 22 Javascript
在vue-cli搭建的项目中增加后台mock接口的方法
Apr 26 Javascript
js实现按钮开关单机下拉菜单效果
Nov 22 Javascript
vue组件 keep-alive 和 transition 使用详解
Oct 11 Javascript
Vue的data、computed、watch源码浅谈
Apr 04 Javascript
ES6箭头函数和扩展实例分析
May 23 Javascript
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
PHP 引用是个坏习惯
2010/03/12 PHP
php set_time_limit(0) 设置程序执行时间的函数
2010/05/26 PHP
php之static静态属性与静态方法实例分析
2015/07/30 PHP
深入理解PHP之源码目录结构与功能说明
2016/06/01 PHP
jquery 插件 任意位置浮动固定层
2008/12/25 Javascript
dojo随手记 gird组件引用
2011/02/24 Javascript
获取服务器传来的数据 用JS去空格的正则表达式
2012/03/26 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
2013/11/19 Javascript
浅谈JavaScript中Date(日期对象),Math对象
2015/02/05 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
2015/11/25 Javascript
jQuery插件pagination实现无刷新分页
2016/05/21 Javascript
基于vue的fullpage.js单页滚动插件
2017/03/20 Javascript
使用 Vue 绑定单个或多个 Class 名的实例代码
2018/01/08 Javascript
基于Vue中点击组件外关闭组件的实现方法
2018/03/06 Javascript
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
JS实现的A*寻路算法详解
2018/12/14 Javascript
微信小程序实现收货地址左滑删除
2020/11/18 Javascript
解决Vue调用springboot接口403跨域问题
2019/09/02 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
2019/11/01 jQuery
Python中动态获取对象的属性和方法的教程
2015/04/09 Python
python开发之函数定义实例分析
2015/11/12 Python
Python爬取数据并写入MySQL数据库的实例
2018/06/21 Python
Python实现的各种常见分布算法示例
2018/12/13 Python
python基于itchat模块实现微信防撤回
2019/04/29 Python
python判断自身是否正在运行的方法
2019/08/08 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
Python基于模块Paramiko实现SSHv2协议
2020/04/28 Python
python识别验证码的思路及解决方案
2020/09/13 Python
墨西哥网上超市:Superama
2018/07/10 全球购物
Pretty You London官网:英国拖鞋和睡衣品牌
2019/05/08 全球购物
化工操作工岗位职责
2014/04/29 职场文书
部门年终奖分配方案
2014/05/07 职场文书
公司合作意向书范文
2014/07/30 职场文书
2016北大自主招生自荐信模板
2016/01/28 职场文书
Golang 实现WebSockets
2022/04/24 Golang
Mysql 一主多从的部署
2022/05/20 MySQL