`

Heritrix3.1.0RC1使用Cookie不能自动登录问题的一个解决办法

阅读更多

改FetchHTTP类,

 

1、在innerProcess方法中的代码

this.http.executeMethod(customConfigOrNull, method);

之前增加:

populateCookies(method);

 

2、增加私有方法如下:

    private void populateCookies(HttpMethodBase method) {
        Map<String, Cookie> cookieMap = cookieStorage.getCookiesMap();
        
        //没设置Cookie.
        if(cookieMap == null || cookieMap.size() == 0) {
            return;
        }
        
        StringBuilder sb = new StringBuilder("");
        for(Cookie cookie : cookieMap.values()) {
            sb.append(cookie.getName());
            sb.append('=');
            sb.append(cookie.getValue());
            sb.append(';');
        }
        method.setRequestHeader("Cookie", sb.deleteCharAt(sb.length() - 1).toString());
    }

 

3、修改AbstractCookieStorage类,在记录日志的代码之前增加

result.put(cookie.getSortKey(), cookie)

 把Cookie放入到Map中,在FetchHTTP的start()方法中,得到配置文件中设置的Cookies。

 

 

 

 

分享到:
评论
2 楼 chuanwang66 2012-06-04  
请问Heritrix 3.1.0 你是怎么配置进Eclipse的呢?网上貌似只有1.14.4那个版本在Eclipse的配置
1 楼 chuanwang66 2012-06-04  
没有找到AbstractCookieStorage类呢

相关推荐

Global site tag (gtag.js) - Google Analytics