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 相关文章推荐
jQuery 位置函数offset,innerWidth,innerHeight,outerWidth,outerHeight,scrollTop,scrollLeft
Mar 23 Javascript
jQuery之选项卡的简单实现
Feb 28 Javascript
JavaScript使用cookie记录临时访客信息的方法
Apr 07 Javascript
JS控制静态页面之间传递参数获取参数并应用的简单实例
Aug 10 Javascript
基于javascript实现最简单选项卡切换
Feb 01 Javascript
Node.js 使用递归实现遍历文件夹中所有文件
Sep 18 Javascript
微信小程序的日期选择器的实例详解
Sep 29 Javascript
vue 中引用gojs绘制E-R图的方法示例
Aug 24 Javascript
jQuery访问json文件中数据的方法示例
Jan 28 jQuery
Vue中watch、computed、updated三者的区别及用法
Jul 27 Javascript
vue 动态生成拓扑图的示例
Jan 03 Vue.js
微信小程序 接入腾讯地图的两种写法
Jan 12 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
第十三节--对象串行化
2006/11/16 PHP
PHP获取数组中某元素的位置及array_keys函数应用
2013/01/29 PHP
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
Javascript - HTML的request类
2007/01/09 Javascript
使用户点击后退按钮使效三行代码
2007/07/07 Javascript
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
深入理解JavaScript系列(34):设计模式之命令模式详解
2015/03/03 Javascript
jQuery实现仿美橙互联两级导航菜单效果完整实例
2015/09/17 Javascript
javascript实现获取浏览器版本、浏览器类型
2015/12/02 Javascript
探讨:JavaScript ECAMScript5 新特性之get/set访问器
2016/05/05 Javascript
jQuery过滤特殊字符及JS字符串转为数字
2016/05/26 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
2017/01/05 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
2017/02/21 Javascript
利用Node.js检测端口是否被占用的方法
2017/12/07 Javascript
在Vue组件上动态添加和删除属性方法
2018/02/23 Javascript
Nodejs使用Mongodb存储与提供后端CRD服务详解
2018/09/04 NodeJs
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
2019/12/21 Javascript
vite2.0+vue3移动端项目实战详解
2021/03/03 Vue.js
[01:19:33]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第一场 2月2日
2021/03/11 DOTA
在Python中进行自动化单元测试的教程
2015/04/15 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
2018/12/06 Python
使用Python实现正态分布、正态分布采样
2019/11/20 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
使用python从三个角度解决josephus问题的方法
2020/03/27 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
如何完美的建立一个python项目
2020/10/09 Python
彻底解决Python包下载慢问题
2020/11/15 Python
英国计算机产品零售商:Novatech(定制个人电脑、笔记本电脑、工作站和服务器)
2018/01/28 全球购物
欧洲最大的预定车位市场:JustPark
2020/01/06 全球购物
什么是Smarty变量操作符?如何使用Smarty变量操作符
2014/07/18 面试题
会计毕业生自荐信
2013/11/21 职场文书
经销商订货会主持词
2014/03/27 职场文书
公路绿化方案
2014/05/12 职场文书
入股合作协议书
2014/10/12 职场文书