From 25c81013ca6573f1646613f1c5c7e3572dff734a Mon Sep 17 00:00:00 2001 From: "yihua.huang" Date: Mon, 20 Mar 2017 22:47:24 +0800 Subject: [PATCH] new proxy pool api --- .../src/main/java/us/codecraft/webmagic/Site.java | 5 ----- .../webmagic/downloader/HttpClientDownloader.java | 6 +++--- .../main/java/us/codecraft/webmagic/proxy/ProxyPool.java | 7 ++++--- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/webmagic-core/src/main/java/us/codecraft/webmagic/Site.java b/webmagic-core/src/main/java/us/codecraft/webmagic/Site.java index 501f758..d342069 100644 --- a/webmagic-core/src/main/java/us/codecraft/webmagic/Site.java +++ b/webmagic-core/src/main/java/us/codecraft/webmagic/Site.java @@ -2,7 +2,6 @@ package us.codecraft.webmagic; import org.apache.http.HttpHost; import org.apache.http.auth.UsernamePasswordCredentials; -import us.codecraft.webmagic.proxy.Proxy; import us.codecraft.webmagic.proxy.ProxyPool; import us.codecraft.webmagic.proxy.TimerReuseProxyPool; import us.codecraft.webmagic.utils.UrlUtils; @@ -509,8 +508,4 @@ public class Site { return httpProxyPool; } - public Proxy getHttpProxyFromPool() { - return httpProxyPool.getProxy(); - } - } 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 7ca483a..93a8a7c 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 @@ -79,8 +79,8 @@ public class HttpClientDownloader extends AbstractDownloader { Site site = task.getSite(); Proxy proxy = null; HttpContext httpContext = new BasicHttpContext(); - if (site.getHttpProxyPool() != null && site.getHttpProxyPool().isEnable()) { - proxy = site.getHttpProxyFromPool(); + if (site.getHttpProxyPool() != null) { + proxy = site.getHttpProxyPool().getProxy(task); request.putExtra(Request.PROXY, proxy); AuthState authState = new AuthState(); authState.update(new BasicScheme(), new UsernamePasswordCredentials(proxy.getUsername(), proxy.getPassword())); @@ -112,7 +112,7 @@ public class HttpClientDownloader extends AbstractDownloader { EntityUtils.consumeQuietly(httpResponse.getEntity()); } if (proxy != null) { - site.getHttpProxyPool().returnProxy(proxy, statusCode); + site.getHttpProxyPool().returnProxy(proxy, statusCode, task); } } } diff --git a/webmagic-core/src/main/java/us/codecraft/webmagic/proxy/ProxyPool.java b/webmagic-core/src/main/java/us/codecraft/webmagic/proxy/ProxyPool.java index 50e4029..ad307a6 100644 --- a/webmagic-core/src/main/java/us/codecraft/webmagic/proxy/ProxyPool.java +++ b/webmagic-core/src/main/java/us/codecraft/webmagic/proxy/ProxyPool.java @@ -1,13 +1,14 @@ package us.codecraft.webmagic.proxy; +import us.codecraft.webmagic.Task; + /** * Created by edwardsbean on 15-2-28. */ public interface ProxyPool { - void returnProxy(Proxy proxy, int statusCode); + void returnProxy(Proxy proxy, int statusCode, Task task); - Proxy getProxy(); + Proxy getProxy(Task task); - boolean isEnable(); }