注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Fly to the Sky!

很多人因为寂寞而错爱一个人,更多人因为错爱一个人而寂寞一生。

 
 
 

日志

 
 

httpClient4.0 cookie rejected解决  

2012-07-05 13:43:31|  分类: cookies |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
httpclient的cookie处理对我来说总觉得有些复杂,在实现不同的需求时总出现各种各样的莫名其妙问题。
httpclient版本为4.0.3,构造的http请求无需传递cookie值,结果log中出现大量的warn信息:

[WARN ]13:32:00,828, pool-1-thread-9, [Class]ResponseProcessCookies, Cookie rejected: "[version: 0][name: NTESLOFTSI][value: 9C5DD68981E435146CE7654DBE5107E1.bje3b11-8010][domain: .www.lofter.com][path: /][expiry: null]". Illegal domain attribute "www.lofter.com". Domain of origin: "api.lofter.com"

查看了一些资料,大意是httpclient请求默认需要传cookie的,那么是否有办法忽略cookie的处理呢。
貌似httpclient3版本中支持这种设置,具体设置方法为:
 client.getParams().setCookiePolicy(CookiePolicy.IGNORE_COOKIES);

但是httpclient4的api中没有找到相应的方法,查看官方说明有这么一个说法:
customer cookie policy,也即是支持自定义cookie policy。
具体做法是(参考以上链接):
/**
* 获得httpclient实例
* @param hparams
* @return
*/
public HttpClient getHttpClient(){
DefaultHttpClient httpClient = new DefaultHttpClient();
httpClient.getCookieSpecs().register("easy", csf);
httpClient.getParams().setParameter(ClientPNames.COOKIE_POLICY, "easy");
        HttpConnectionParams.setConnectionTimeout(httpClient.getParams(), 2000);
        return httpClient;
}
// customer cookie policy, ignore cookie check
CookieSpecFactory csf = new CookieSpecFactory() {
   public CookieSpec newInstance(HttpParams params) {
       return new BrowserCompatSpec() {   
           @Override
           public void validate(Cookie cookie, CookieOrigin origin)
           throws MalformedCookieException {
               // Oh, I am easy
           }
       };
   }
};
通过自定义的方式,发现果然解决了cookie reject的问题。由于时间问题,并没有仔细研究这块,仅作为一个参考解决方法。


  评论这张
 
阅读(11178)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017