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

本文探讨了在使用HttpClient4时遇到的cookierejected警告问题,并提供了通过自定义cookie策略消除此警告的方法。重点在于理解RFC标准变化对HTTP客户端的影响,以及如何调整配置以避免不必要的警告。

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,但对于该异常产生的真正原因仍然不明确。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值