您的位置:首页 > 理论基础 > 计算机网络

HttpClient4的cookie rejected问题,以及如何消除该warning输出

2012-02-29 18:48 423 查看
HttpClient4的cookie rejected问题,以及如何消除该warning输出 - Natural - BlogJava

HttpClient4的cookie rejected问题,以及如何消除该warning输出

环境:HttpClient4.0.1

发现在执行httpClient写的demo时会输出一个警告(以前没这个警告出现):

警告: Cookie rejected: "$Version=0; ID=XXXXXX:FG=1;
$Path=/; $Domain=XXXXX". Illegal domain attribute ".XXXXXX".
Domain of origin: "XX.XXX.XXX.XXX"

网上了解了一下,大致是说httpclient的请求默认是需要cookie的,但是默认CookiePolicy.BROWSER_COMPATIBILITY,是RFC2109,cookie ver1,现在RFC2965 定义了cookie的第二个版本,所以要自己设置下

CookiePolicy.postMethod.getParams().setParameter("http.protocol.cookie-policy",CookiePolicy.BROWSER_COMPATIBILITY);

但使用该方法仍然会有该warning输出。难道是本人采用的httpclient版本问题吗?

结合HttpClient4.0.1的文档的第三章,可以通过3.6所提的自定义cookie策略,来消除该warning的输出。

但该方案只是将validate方法重写为空方法——对于cookie验证什么也不做。

// 定制cookie策略

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

}

};

}

};

httpClient.getCookieSpecs().register("easy", csf);

httpClient.getParams().setParameter(ClientPNames.COOKIE_POLICY, "easy");

总结:最后只是通过老子“无为”的方式去掉该warning,但对于该异常产生的真正原因仍然不明确。。。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: