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判断运行jsp页面的浏览器类型以及版本示例
Oct 30 Javascript
可恶的ie8提示缺少id未定义
Mar 20 Javascript
针对初学者的jQuery入门指南
Aug 15 Javascript
AngularJS框架中的双向数据绑定机制详解【减少需要重复的开发代码量】
Jan 19 Javascript
微信小程序之数据双向绑定与数据操作
May 12 Javascript
ES6中箭头函数的定义与调用方式详解
Jun 02 Javascript
Redux实现组合计数器的示例代码
Jul 04 Javascript
Koa 使用小技巧(小结)
Oct 22 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
Mar 13 Javascript
Vue 2.0 中依赖注入 provide/inject组合实战
Jun 20 Javascript
微信小程序与公众号实现数据互通的方法
Jul 25 Javascript
nestjs中异常过滤器Exceptionfilter的具体使用
Feb 07 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
法压式咖啡之制作法
2021/03/03 冲泡冲煮
如何利用PHP执行.SQL文件
2013/07/05 PHP
JavaScript实现滚动栏效果的方法
2015/04/27 PHP
PHP错误和异常处理功能模块示例
2016/11/12 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
2016/11/16 PHP
Javascript Cookie读写删除操作的函数
2010/03/02 Javascript
Java File类的常用方法总结
2015/03/18 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
2016/01/19 Javascript
深入理解JS addLoadEvent函数
2016/05/20 Javascript
Javascript函数中的arguments.callee用法实例分析
2016/09/16 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
jQuery实现的简单悬浮层功能完整实例
2017/01/23 Javascript
Three.js入门之hello world以及如何绘制线
2017/09/25 Javascript
浅谈针对Vue相同路由不同参数的刷新问题
2018/09/29 Javascript
小程序实现多列选择器
2019/02/15 Javascript
Vue内部渲染视图的方法
2019/09/02 Javascript
小程序点击图片实现png转jpg
2019/10/22 Javascript
js实现二级联动简单实例
2020/01/11 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
jquery实现简易验证插件封装
2020/09/13 jQuery
Vue中添加滚动事件设置的方法详解
2020/09/14 Javascript
[02:04]2014DOTA2国际邀请赛 BBC小组赛第三天总结
2014/07/12 DOTA
[00:59]PWL开团时刻DAY7——我在赶
2020/11/06 DOTA
python 字典(dict)按键和值排序
2016/06/28 Python
Python线程指南详细介绍
2017/01/05 Python
Python实现生成随机数据插入mysql数据库的方法
2017/12/25 Python
python3.6使用urllib完成下载的实例
2018/12/19 Python
Python 中Django验证码功能的实现代码
2019/06/20 Python
pandas的qcut()方法详解
2019/07/06 Python
python调用Matplotlib绘制分布点图
2019/10/18 Python
Kate Spade澳大利亚官方网站:美国设计师手袋品牌
2019/09/10 全球购物
《雷雨》教学反思
2014/02/20 职场文书
医生个人年终总结
2015/02/28 职场文书
法学专业求职信范文
2015/03/19 职场文书
2015年林业工作总结
2015/05/14 职场文书
详解Mysq MVCC多版本的并发控制
2022/04/29 MySQL