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之对系统的toFixed()方法的修正
May 08 Javascript
基于Asp.net与Javascript控制的日期控件
May 22 Javascript
JS与C#编码解码
Dec 03 Javascript
jQuery后代选择器用法实例
Dec 23 Javascript
JQuery控制div外点击隐藏而div内点击不会隐藏的方法
Jan 13 Javascript
xtemplate node.js 的使用方法实例解析
Aug 22 Javascript
JavaScript Canvas绘制圆形时钟效果
Aug 20 Javascript
vue.js之vue-cli脚手架的搭建详解
May 05 Javascript
vue实现百度搜索下拉提示功能实例
Jun 14 Javascript
vue实现自定义多选与单选的答题功能
Jul 05 Javascript
js核心基础之闭包的应用实例分析
May 11 Javascript
vue实现权限控制路由(vue-router 动态添加路由)
Nov 04 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聊天室技术
2006/10/09 PHP
使用Xdebug调试和优化PHP程序之[1]
2007/04/17 PHP
PHP写入WRITE编码为UTF8的文件的实现代码
2008/07/07 PHP
javascript 实用的文字链提示框效果
2010/06/30 Javascript
Tab页界面 用jQuery及Ajax技术实现(php后台)
2011/10/12 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
JavaScript cookie的设置获取删除详解
2014/02/11 Javascript
innerHTML在IE中报错解决方案
2014/12/15 Javascript
node.js中的fs.realpathSync方法使用说明
2014/12/16 Javascript
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
Jquery的基本对象转换和文档加载用法实例
2015/02/25 Javascript
js 定义对象数组(结合)多维数组方法
2016/07/27 Javascript
通过js修改input、select默认字体颜色
2017/04/19 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
2017/04/28 Javascript
详谈Node.js之操作文件系统
2017/08/29 Javascript
Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
2017/12/23 Javascript
angular 内存溢出的问题解决
2018/07/12 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
Vue slot用法(小结)
2018/10/22 Javascript
浅谈一种让小程序支持JSX语法的新思路
2019/06/16 Javascript
基于vue 动态菜单 刷新空白问题的解决
2020/08/06 Javascript
js对象属性名驼峰式转下划线的实例代码
2020/09/17 Javascript
[39:52]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第一场
2018/04/04 DOTA
Python自动化测试ConfigParser模块读写配置文件
2016/08/15 Python
Python3中的json模块使用详解
2018/05/05 Python
numpy和pandas中数组的合并、拉直和重塑实例
2019/06/28 Python
Python空间数据处理之GDAL读写遥感图像
2019/08/01 Python
Python3和pyqt5实现控件数据动态显示方式
2019/12/13 Python
向全球直邮输送天然健康产品:iHerb.com
2020/05/03 全球购物
可靠的数据流传输TCP
2016/03/15 面试题
模具毕业生推荐信
2014/02/15 职场文书
公司总经理工作职责管理办法
2014/02/28 职场文书
医院病假条范文
2015/08/17 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书
船舶调度指挥系统——助力智慧海事
2022/02/18 无线电
Python中文分词库jieba(结巴分词)详细使用介绍
2022/04/07 Python