session的保持是通过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 的原因,我猜的。

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

(转) httpclient对cookie的处理的更多相关文章

  1. Java通过httpclient获取cookie模拟登录

    package Step1; import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.Htt ...

  2. httpclient提示Cookie rejected: violates RFC 2109: domain must start with a dot

    使用httpclient时发生如下告警信息: WARN - HttpMethodBase.processResponseHeaders(1505) | Cookie rejected: "$ ...

  3. HttpClient使用cookie

    import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; ...

  4. .net 中HttpClient 携带cookie传输

    CookieContainer cookieContainer = new CookieContainer(); Cookie cookie = new Cookie("username&q ...

  5. HttpClient传递Cookie

    使用代码访问http资源,我们通常用WebRequest,当然,HttpClient提供了更方便的封装,我用得更多.只是碰到一些需要(cookie)鉴权的情况,需要把cookie伴随请求一起发到服务器 ...

  6. HttpClient获取Cookie的两种方式

    转载:http://blog.csdn.net/zhangbinu/article/details/72777620 一.旧版本的HttpClient获取Cookies p.s. 该方式官方已不推荐使 ...

  7. 使用HttpClient 4.3.4 自动登录并抓取中国联通用户基本信息和账单数据,GET/POST/Cookie

    一.什么是HttpClient? HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.虽然在 JDK 的 ...

  8. httpclient cookie相关介绍

    http状态管理 cookie是HTTP代理和目标服务器可以交流保持回话的状态信息的令牌或短包. httpclient使用Cookie接口来代表抽象的cookie令牌,在它的简单形式中http的coo ...

  9. httpclient 模拟浏览器动作需注意的cookie和HTTP头等信息

    转自:http://resolute.javaeye.com/blog/491701 commons-httpclient是apache下的一个开源项目,提供了一个纯java实现的http客户端.使用 ...

随机推荐

  1. 1.3 Junit4简介

    1.Junit4框架 可用于单元测试,直接测试类中的方法 2.简单实用 a.导入Junit的jar包 b.熟悉Junit的执行顺序 c.写测试用例 d.利用断言,找bug 3.demo public ...

  2. 浏览器端-W3School-HTML:HTML DOM Script 对象

    ylbtech-浏览器端-W3School-HTML:HTML DOM Script 对象 1.返回顶部 1. HTML DOM Script 对象 Script 对象 Script 对象表示 HTM ...

  3. 万能的TextView,实现常用布局样式

    package com.loaderman.textviewdemo; import android.content.Context; import android.content.res.Typed ...

  4. Responsive web design 学习笔记

    Advanced Styling with Responsive Design 此笔记为Coursera同名课程笔记. Week1 什么是响应式设计? 响应式设计: It is designing y ...

  5. 慕课网_文件传输基础——Java IO流

    第1章 文件的编码 1-1 文件的编码 (15:07) 第2章 File 类的使用 2-1 File 类常用 API 介绍 (10:50) import java.io.File; import ja ...

  6. this引用逸出

    1.定义 public class UnsafeClass { public UnsafeClass(Button button) { button.addActionListener(new Act ...

  7. LeetCode.970-强大的整数(Powerful Integers)

    这是悦乐书的第367次更新,第395篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第229题(顺位题号是970).给定两个正整数x和y,如果对于某些整数i >= 0 ...

  8. 【LeetCode】309、最佳买卖股票时机含冷冻期

    Best Time to Buy and Sell Stock with Cooldown 题目等级:Medium 题目描述: Say you have an array for which the ...

  9. oracle创建表示例

    create table wf_message_weixinqun(dizhi VARCHAR2(200) not null, weixinnicheng VARCHAR2(6) not null,w ...

  10. 第九周课程总结&实验报告

    实验任务详情: 完成火车站售票程序的模拟. 要求: (1)总票数1000张: (2)10个窗口同时开始卖票: (3)卖票过程延时1秒钟: (4)不能出现一票多卖或卖出负数号票的情况. public c ...