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的开源工具PACKER2.0.2
Nov 04 Javascript
用dtree实现树形菜单 dtree使用说明
Oct 17 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
Feb 02 Javascript
Node.js实现在目录中查找某个字符串及所在文件
Sep 03 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
Jun 20 Javascript
jQuery 的 ready()的纯js替代方法
Nov 20 Javascript
常用JS图片滚动(无缝、平滑、上下左右滚动)代码大全(推荐)
Dec 20 Javascript
JavaScript常用正则函数用法示例
Jan 23 Javascript
原生js通过一行代码实现简易轮播图
Jun 05 Javascript
VUE渲染后端返回含有script标签的html字符串示例
Oct 28 Javascript
es6函数中的作用域实例分析
Apr 18 Javascript
vue el-table实现递归嵌套的示例代码
Aug 14 Vue.js
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下几种删除目录的方法总结
2007/08/19 PHP
PHP获取网站域名和地址的代码
2008/08/17 PHP
PHP测试成功的邮件发送案例
2015/10/26 PHP
PHPStorm+XDebug进行调试图文教程
2016/06/13 PHP
老生常谈PHP面向对象之注册表模式
2017/05/26 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
2019/03/07 PHP
js window.onload 加载多个函数的方法
2009/11/02 Javascript
javaScript 利用闭包模拟对象的私有属性
2011/12/29 Javascript
一个简单的Node.js异步操作管理器分享
2014/04/29 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
jquery实现动态改变div宽度和高度
2015/05/08 Javascript
AngularJS 使用$sce控制代码安全检查
2016/01/05 Javascript
AngularJS延迟加载html template
2016/07/27 Javascript
JS去除字符串中空格的方法
2017/02/14 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
2017/10/26 Javascript
纯js实现隔行变色效果
2017/11/29 Javascript
使用vue如何构建一个自动建站项目
2018/02/05 Javascript
Python urllib模块urlopen()与urlretrieve()详解
2013/11/01 Python
python opencv人脸检测提取及保存方法
2018/08/03 Python
Python 确定多项式拟合/回归的阶数实例
2018/12/29 Python
Django REST Framework之频率限制的使用
2019/09/29 Python
pytorch点乘与叉乘示例讲解
2019/12/27 Python
Python实现队列的方法示例小结【数组,链表】
2020/02/22 Python
python实现飞船游戏的纵向移动
2020/04/24 Python
keras CNN卷积核可视化,热度图教程
2020/06/22 Python
python 多线程死锁问题的解决方案
2020/08/25 Python
Python趣味入门教程之循环语句while
2020/08/26 Python
梅西酒窖:Macy’s Wine Cellar
2018/01/07 全球购物
Servlet方面面试题
2016/09/28 面试题
北大自主招生自荐信
2013/10/19 职场文书
给老师的道歉信
2014/01/11 职场文书
社团活动总结范文
2014/04/26 职场文书
民主评议党员自我评议范文2014
2014/09/26 职场文书
保证书格式
2015/01/16 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书
Python上下文管理器Content Manager
2021/06/26 Python