Commit a37f40e6 authored by yihua.huang's avatar yihua.huang

add cookie supoort

parent 3c6fced4
...@@ -3,6 +3,7 @@ package us.codecraft.webmagic.downloader; ...@@ -3,6 +3,7 @@ package us.codecraft.webmagic.downloader;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import org.apache.http.HttpResponse; import org.apache.http.HttpResponse;
import org.apache.http.annotation.ThreadSafe; import org.apache.http.annotation.ThreadSafe;
import org.apache.http.client.config.CookieSpecs;
import org.apache.http.client.config.RequestConfig; import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.RequestBuilder; import org.apache.http.client.methods.RequestBuilder;
...@@ -102,8 +103,9 @@ public class HttpClientDownloader implements Downloader { ...@@ -102,8 +103,9 @@ public class HttpClientDownloader implements Downloader {
} }
RequestConfig.Builder requestConfigBuilder = RequestConfig.custom() RequestConfig.Builder requestConfigBuilder = RequestConfig.custom()
.setConnectionRequestTimeout(site.getTimeOut()) .setConnectionRequestTimeout(site.getTimeOut())
.setConnectTimeout(site.getTimeOut()); .setConnectTimeout(site.getTimeOut())
if (site.getHttpProxy()!=null){ .setCookieSpec(CookieSpecs.BEST_MATCH);
if (site.getHttpProxy() != null) {
requestConfigBuilder.setProxy(site.getHttpProxy()); requestConfigBuilder.setProxy(site.getHttpProxy());
} }
requestBuilder.setConfig(requestConfigBuilder.build()); requestBuilder.setConfig(requestConfigBuilder.build());
......
...@@ -81,10 +81,11 @@ public class HttpClientPool { ...@@ -81,10 +81,11 @@ public class HttpClientPool {
if (site!=null){ if (site!=null){
httpClientBuilder.setRetryHandler(new DefaultHttpRequestRetryHandler(site.getRetryTimes(),true)); httpClientBuilder.setRetryHandler(new DefaultHttpRequestRetryHandler(site.getRetryTimes(),true));
} }
generateCookie(httpClientBuilder,site);
return httpClientBuilder.build(); return httpClientBuilder.build();
} }
private void generateCookie(DefaultHttpClient httpClient, Site site) { private void generateCookie(HttpClientBuilder httpClientBuilder, Site site) {
CookieStore cookieStore = new BasicCookieStore(); CookieStore cookieStore = new BasicCookieStore();
if (site.getCookies() != null) { if (site.getCookies() != null) {
for (Map.Entry<String, String> cookieEntry : site.getCookies().entrySet()) { for (Map.Entry<String, String> cookieEntry : site.getCookies().entrySet()) {
...@@ -93,7 +94,7 @@ public class HttpClientPool { ...@@ -93,7 +94,7 @@ public class HttpClientPool {
cookieStore.addCookie(cookie); cookieStore.addCookie(cookie);
} }
} }
httpClient.setCookieStore(cookieStore); httpClientBuilder.setDefaultCookieStore(cookieStore);
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment