From a37f40e6e60b6c038522cd643bd836166ee4e7d1 Mon Sep 17 00:00:00 2001 From: "yihua.huang" Date: Mon, 4 Nov 2013 00:59:48 +0800 Subject: [PATCH] add cookie supoort --- .../codecraft/webmagic/downloader/HttpClientDownloader.java | 6 ++++-- .../us/codecraft/webmagic/downloader/HttpClientPool.java | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/webmagic-core/src/main/java/us/codecraft/webmagic/downloader/HttpClientDownloader.java b/webmagic-core/src/main/java/us/codecraft/webmagic/downloader/HttpClientDownloader.java index 2da585f..cdbc55a 100644 --- a/webmagic-core/src/main/java/us/codecraft/webmagic/downloader/HttpClientDownloader.java +++ b/webmagic-core/src/main/java/us/codecraft/webmagic/downloader/HttpClientDownloader.java @@ -3,6 +3,7 @@ package us.codecraft.webmagic.downloader; import com.google.common.collect.Sets; import org.apache.http.HttpResponse; 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.methods.CloseableHttpResponse; import org.apache.http.client.methods.RequestBuilder; @@ -102,8 +103,9 @@ public class HttpClientDownloader implements Downloader { } RequestConfig.Builder requestConfigBuilder = RequestConfig.custom() .setConnectionRequestTimeout(site.getTimeOut()) - .setConnectTimeout(site.getTimeOut()); - if (site.getHttpProxy()!=null){ + .setConnectTimeout(site.getTimeOut()) + .setCookieSpec(CookieSpecs.BEST_MATCH); + if (site.getHttpProxy() != null) { requestConfigBuilder.setProxy(site.getHttpProxy()); } requestBuilder.setConfig(requestConfigBuilder.build()); diff --git a/webmagic-core/src/main/java/us/codecraft/webmagic/downloader/HttpClientPool.java b/webmagic-core/src/main/java/us/codecraft/webmagic/downloader/HttpClientPool.java index 5c80ba5..a0ab74a 100644 --- a/webmagic-core/src/main/java/us/codecraft/webmagic/downloader/HttpClientPool.java +++ b/webmagic-core/src/main/java/us/codecraft/webmagic/downloader/HttpClientPool.java @@ -81,10 +81,11 @@ public class HttpClientPool { if (site!=null){ httpClientBuilder.setRetryHandler(new DefaultHttpRequestRetryHandler(site.getRetryTimes(),true)); } + generateCookie(httpClientBuilder,site); return httpClientBuilder.build(); } - private void generateCookie(DefaultHttpClient httpClient, Site site) { + private void generateCookie(HttpClientBuilder httpClientBuilder, Site site) { CookieStore cookieStore = new BasicCookieStore(); if (site.getCookies() != null) { for (Map.Entry cookieEntry : site.getCookies().entrySet()) { @@ -93,7 +94,7 @@ public class HttpClientPool { cookieStore.addCookie(cookie); } } - httpClient.setCookieStore(cookieStore); + httpClientBuilder.setDefaultCookieStore(cookieStore); } }