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

Heritrix3.1.0RC1使用Cookie不能自动登录问题的一个解决办法改FetchHTTP类,?1、在innerProcess方法中的代码

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。

?

?

?

?