`
mgoann
  • 浏览: 250479 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

HttpClient Cookies

阅读更多

HttpClient Cookies

简介

 

HttpClient支持自动管理Cookies,允许服务端设定Cookies,并在请求时自动返回客户端的Cookies信息。客户端也可以手动的设置Cookies发送到服务端。

 

不幸的是,同一时间内有太多的Cookies标准: Netscape Cookie, RFC2109, RFC2965 以及大量供应商不符合规范的自定义Cookies标准。针对此,HttpClient提供Cookies管理策略驱动。这片文章意在阐述怎么样去使用不同标准的Cookies以及如何解决在使用CookiesHttpClient时一些共同的问题。

 

支持的规格

 

以下Cookies标准,HttpClient3.1可以支持。

 

RFC2109

 

RFC2109W3C组织第一次推出的官方Cookies标准。理论上,所有使用版本1Cookies的服务端都应该使用此标准。HttpClient已经将此标准设定为默认。

 

遗憾的是,许多服务端不正确的实现了标准或者仍然使用Netscape标准。所有有时感到此标准太多于严格。

 

RFC2109HttpClient使用的默认Cookies协议。

 

RFC2965

 

RFC2965定义了版本2并且尝试去弥补在版本1CookieRFC2109标准的缺点。RFC2965是,并规定RFC2965最终取代RFC2109.

 

发送RFC2965标准Cookies的服务端,将会使用Set-Cookie2 header添加到Set-Cookie Header信心中,RFC2965 Cookies是区分端口的。

 

Netscape标准

 

Netscape是最原始的Cookies规范,同时也是RFC2109的基础。尽管如此,还是在很多重要的方面与RFC2109不同,可能需要特定服务器才可以兼容。

 

Browser Compatibility

 

这种兼容性设计要求是适应尽可能多的不同的服务器,尽管不是完全按照标准来实现的。如果你遇到了解析Cookies的问题,你就可能要用到这一个规范。

 

有太多的web站点是用CGI脚本去实现的,而导致只有将所有的Cookies都放入Request header才可以正常的工作。这种情况下最好设置http.protocol.single-cookie-header参数为true

 

Ignore Cookies

 

此规格忽略所有Cookie 。被用来防止HttpClient接受和发送的Cookie

 

Spacifying the Specification

 

有俩中方式去规定使用哪种Cookies规范,每个HttpMethod实例都有HttpMethodParams,他的policy值必须使用方法CookiePolicy.registerCookieSpec()来注册。

 

HttpMethod method = new GetMethod();

Method.getParams().setCookiePolicy(CookiePolicy.RFC_2109);

 

手动处理Cookies

 

HttpClientCookie管理API可以手动处理Cookie。可以手动设置RequsetCookie headers或是处理ResponseSet-Cookieheaders或是用自动Cookie管理去代替。

 

HttpMethod method = new GetMethod();

Method.getParams().setCookiePolicy(CookiePolicy.IGNORE_COOKIES);

Method.setRequestHeader(“Cookie”, “special_cookie=value”);

分享到:
评论

相关推荐

    httpclient请求方式+cookies

    httpclient 请求两种方式,如果有cookie可加上cookies,同步获取返回值

    httpclient4.5.3 jar完整包含所有依赖包

    完全兼容jdk1.7,1.8,完整包含所有依赖包...* [HTTPCLIENT-1788] RFC 6265 policy must not reject cookies with paths that are no prefix of the uri path. Contributed by Oleg Kalnichevski <olegk at apache.org>

    Jsoup+httpclient 模拟登陆和抓取

    import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.cookie.CookiePolicy; import org.apache.commons.httpclient....

    C#中HttpWebRequest、WebClient、HttpClient的使用详解

    使用HttpWebRequest可以让开发者控制请求/响应流程的各个方面,如 timeouts, cookies, headers, protocols。另一个好处是HttpWebRequest类不会阻塞UI线程。例如,当您从响应很慢的API服务器下载大文件时,您的应用...

    HttpClient.jar codec.jar logging.jar

    java中的网络请求库,HttpClient对象能自行保管好Http请求的一系列head和Cookies值,所以使用HttpClient模拟Http登陆是再好不过了的,该资源为HttpClient所要使用的三个jar包。

    百度发布文章源码

    编程小例子private static String postBlog(Cookie[] cookies, String bdstoken, String title, String content, String category) throws Exception { HttpClient httpClient = getHttpClient(cookies);

    delphi操作NetHTTPClient读写cookie例子

    delphi操作NetHTTPClient读写cookie例子

    Paw HTTP Client MAC

    Paw HTTP Client 是Mac OS下最好用的HTTP客户端模拟测试工具,可以让Web开发者设置各种请求Header和参数,模拟发送HTTP请求,测试响应数据,支持OAuth, HTTP Basic Auth, Cookies等,这对于开发Web服务的应用很有...

    详解Angular操作cookies方法

    主要介绍了详解Angular操作cookies方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    php设置session值和cookies的学习示例

    一直没弄懂Session,cookies什么的登陆验证到底是怎么回事,昨天分别用HttpURLConnection和HttpClient两个类来实验了一下,基本弄明白了Session验证登陆的机制和这两个类的区别。现在分享给大家

    Android 登录Web 时对cookie 处理

    httpclient相当强大,读写cookie非常容易: CookieStore cookies=((AbstractHttpClient)client).getCookieStore();//读cookie ((AbstractHttpClient) client).setCookieStore(cookies);//写cookie 另外的一个问题...

    Android持久化保存cookie的方法

    在解析网页信息的时候,需要登录后才能访问,所以使用httpclient模拟登录,然后把cookie保存下来,以供下一次访问使用,这时就需要持久化cookie中的内容。 在之前先科普一下基础知识: 什么是Cookies? Cookies是...

    SeimiCrawler(Java 爬虫框架) v1.3.0.zip

    支持在Request对象中,通过header(map)来自定义本次请求的header,以及支持通过seimiCookies来自定义cookies,自定义cookies会直接进入cookiesStore,对同域下第二次请求依然有效 优化默认启动方式,改造...

    android读写cookie的方法示例

    发觉读取cookies倒还用的很普遍,可是通过程序写cookie却没有太多资料。 先来看一下如何读取cookie吧: try { DefaultHttpClient httpclient = new DefaultHttpClient(); HttpGet httpget = new HttpGet...

    Android开发技巧总汇(个人总结)

    17.通过HttpClient从指定server获取数据 22 18.拖动Button获得位置 23 19.代码安装apk包 25 20.给模拟器打电话发短信 26 21.从google搜索内容 26 22.浏览网页 26 23.显示地图 26 25.拨打电话 27 26.调用发...

    HTTP请求库java-requests.zip

    Java的世界里,HttpClient 是一个功能强大的Http请求库,然而接口非常复杂,设计上遵从正交性,简单的请求也需要写比较多的代码,更不要说隐藏在各种细节里面的高级用法了。Requests, 是一个模仿python requests ...

    android-async-http 源码

    Optional persistent cookie store, saves cookies into your app's SharedPreferences Examples For inspiration and testing on device we've provided Sample Application. See individual samples here on ...

    Paw HTTP Client 2.1 破解版

    Paw HTTP Client 是Mac OS下最好用的HTTP客户端模拟测试工具,可以让Web开发者设置各种请求Header和参数,模拟发送HTTP请求,测试响应数据,支持OAuth, HTTP Basic Auth, Cookies等,这对于开发Web服务的应用很有...

    Android 常用六大框架

    (7) 可将Cookies持久化到SharedPreferences 3、Afinal框架 项目地址:https://github.com/yangfuhai/afinal 主要有四大模块: (1) 数据库模块:android中的orm框架,使用了线程池对sqlite进行操作。 (2) 注解...

    YurunHttp:YurunHttp 是开源的 PHP HTTP 客户端,支持链式操作,简单易用。完美支持Curl、Swoole 协程。QQ群:17916227

    特性GET/POST/PUT/DELETE/UPDATE 等请求方式浏览器级别 Cookies 管理上传及下载请求头和响应头失败重试自动重定向HTTP 代理方式请求SSL 证书(HTTPS)并发批量请求HTTP2WebSocketCurl & Swoole 环境智能兼容连接池...

Global site tag (gtag.js) - Google Analytics