文档章节

HttpClient 4.0 保持登录session 访问网页

Jonson
 Jonson
发布于 2013/07/18 16:25
字数 537
阅读 2948
收藏 22
ession的保持是通过cookie来维持的,所以如果用户有勾选X天内免登录,这个session 就X天内一直有效,就是通过这个cookie来维护。如果没选X天内免登录,基本上就本次才能保持session,下次打开浏览器就要重新登录了。
所以在web安全里,黑客通过XSS,最终目的就是获取cookie,从免登录直接进入系统。

这次要讲的是,得到用户cookie后,免登录,用HttpClient 保持原来session访问原本一定要登录才能做的事。

HttpClient 4.x 库可以自己处理Cookie
有两咱广度可以添加cookie,
1.通过  httpclient.setCookieStore(cookieStore)
2.通过  httpGet 或者 httpPost 的addHeader(new BasicHeader("Cookie",cookie));


第一种,
HttpClient是否在下次请求中携带从服务器端请求来的Cookie,完全是由设置决定的。

httpclient.getParams.setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.BEST_MATCH) 或者 CookiePolicy.BROWSER_COMPATIBILITY
如果设置为Cookie策略为BEST_MATCH,或BROWSER_COMPATIBILITY的话,HttpClient会在请求中携带由服务器返回的Cookie。如果不设置,应该需要手动添加了CookieStore,才会保持sesson.

如果设置为Cookie策略为默认的话,没设置,则需要手动通过
httpclient.setCookieStore(cookieStore); 去设置.

注:如果用的是同一个HttpClient(上下两个请求用同一个httpclient对象。
且没去手动连接放掉client.getConnectionManager().shutdown(); )!
都不用去设置cookie的ClientPNames.COOKIE_POLICY。httpclient都是会保留cookie的!


第二种,
通过Header去设置cookie,这种方法,就是今天要用的应用场景,
我们得到一个登录的cookie,免登录访问。
可以用浏览器登录,然后f12通过console 执行 document.cookie 得到cookie,
用这个cookie ,在访问时,设置  httpGet 或者 httpPost 的addHeader(new BasicHeader("Cookie",cookie));就可以免登录访问。


这种场景我用来用第一种方法,设置没成功,可能是因为用第一种时,没设置path,domain,expire 的原因,我猪的。

这种场景可以解决第一次登录也需要验证码的网站。没有登录就没办法发布或刷新信息。
如赶集网。

本文转载自:http://huangzhir.iteye.com/blog/1880844

共有 人打赏支持
Jonson
粉丝 21
博文 131
码字总数 17942
作品 0
肇庆
私信 提问
加载中

评论(1)

艾尔库鲁斯
艾尔库鲁斯
抄人家的东西还真是原封不动啊 你知道什么意思么
爬虫--[HttpClient]

爬虫技术可以获取互联网上开放的网页文档或其他文档,在java中HttpClient是比较好用的模拟请求和爬虫组件 下面看一个简单的职位爬去的实例: 1 下载HttpClient 最新HttpClient版本是4.x,我们...

Candy_Desire
2014/11/06
0
0
HttpClient的CircularRedirectException异常原因及解决办法

HttpClient的CircularRedirectException异常原因及解决办法 这两天在使用我自己爬虫抓取网页的时候总是出现 org.apache.http.client.ClientProtocolException at org.apache.http.impl.clien...

我是小强
2013/12/26
0
0
JAVA-用HttpClient来模拟浏览器GET,POST

一般的情况下我们都是使用IE或者Navigator浏览器来访问一个WEB服务器,用来浏览页面查看信息或者提交一些数据等等。所访问的这些页面有的仅仅是一些普通的页面,有的需要用户登录后方可使用,...

Liuxz-aaa
2011/08/10
0
0
【J2EE系列】HttpClient 学习整理 [转]

HttpClient 是我最近想研究的东西,以前想过的一些应用没能有很好的实现,发现这个开源项目之后就有点眉目了,令人头痛的cookie问题还是有办法解决滴。在网上整理了一些东西,写得很好,寄放...

磊神Ray
2012/01/12
0
0
通过JAVA程序来获取某个页面的信息 HttpClient

今天碰到一个问题,就是跨域调取数据的问题.....应该算是跨域吧,看到程序时用httpClient写的,晚上回来看了一下,非常好,看到一篇好文章,转过来 一般的情况下我们都是使用IE或者Navigator...

枫爱若雪
2012/04/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

域名备案图文教程

摘要: 备案不易,且行且珍惜! 我买了个腾讯云的服务器,1核1G,打算用于部署个人网站kiwenlau.com。根据规定,在国内部署网站,是需要为域名备案的... 备案是通过腾讯云申请的,一切都很顺利...

Fundebug
4分钟前
0
0
怎么写出好的敏捷测试(Agile Tesing)策略文档

敏捷测试策略 在敏捷环境中,我们在短期冲刺或迭代中工作,每个sprint只关注一些需求或用户故事,因此文档在数量和内容方面可能不会那么广泛。 之前我们得出的结论是,由于时间限制,我们可能...

程序猿拿Q
4分钟前
0
0
Linux之《荒岛余生》(二)CPU篇

Linux之《荒岛余生》(二)CPU篇 温馨提示,动图已压缩,流量党放心查看。CPU方面内容不多,我们顺便学点命令。本篇是《荒岛余生》系列第二篇,垂直观测CPU。其余参见: Linux之《荒岛余生》...

小姐姐味道
8分钟前
0
0
DRDS SQL 审计与分析——全面洞察 SQL 之利器

背景 数据库存储着系统的核心数据,其安全方面的问题在传统环境中已经成为泄漏和被篡改的重要根源。而在云端,数据库所面临的威胁被进一步的放大。因此,对云数据库的操作行为尤其是全量 SQ...

阿里云云栖社区
9分钟前
2
0
JSONArray 排序

List<JSONObject> jsonArySort = new ArrayList<JSONObject>();    for (int i = 0; i < rtJsonArray.length(); i++) {    jsonArySort.add(rtJsonArray.getJSONObject(i));......

MoksMo
11分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部