httpclient4 cookie问题

今天用httpclient4 开发爬虫程序中,日志中一直有下面的warning信息:

Cookie rejected: "[version: 0][name: U_TRS2][value: 00000
0be.116527ba.51510ea5.8f309118][domain: .sina.com.cn][path: /][expiry: null]". Illegal domain attribute "XXX.com.cn". D
omain of origin: "XXXXX.com"

很多推荐下面的解决方案,但是无果

httpget.getParams().setParameter(
        ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY);
 //设置 HttpClient 接收 Cookie,用与浏览器一样的策略

 

官网http://hc.apache.org/httpcomponents-client-ga/看到HttpClient Tutorial中的cookie管理这一章,有段说自定义CookiePolicy

复制代码
 1 CookieSpecFactory csf = new CookieSpecFactory() {
 2     public CookieSpec newInstance(HttpParams params) {
 3         return new BrowserCompatSpec() {   
 4             @Override
 5             public void validate(Cookie cookie, CookieOrigin origin)
 6             throws MalformedCookieException {
 7                 // Oh, I am easy
 8             }
 9         };
10     }
11 };
12 
13 DefaultHttpClient httpclient = new DefaultHttpClient();
14 httpclient.getCookieSpecs().register("easy", csf);
15 httpclient.getParams().setParameter(
16      ClientPNames.COOKIE_POLICY, "easy");
复制代码

 

  把这段放到自己代码中,测试了一下,WARN居然不报了,那问题就解决了..

  想了想,问题还是在CookiePolicy这里....网上说的用浏览器cookie策略,我觉得需要每个请求对”浏览器“策略的cookie进行一系操作,而我构造的http请求无需传递cookie值,就导致cookie rejected,自定义的cookie对cookie进行的空操作,避免了这些这个问题..

你可能感兴趣的:(httpclient4 cookie问题)