From 791323a5b0730f483a5a488dff149995f6722c75 Mon Sep 17 00:00:00 2001 From: Sutra Zhou Date: Tue, 16 Jun 2020 14:45:29 +0800 Subject: [PATCH] Add Proxy#scheme. --- .../downloader/HttpUriRequestConverter.java | 2 +- .../us/codecraft/webmagic/proxy/Proxy.java | 27 ++++++++++++++----- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/webmagic-core/src/main/java/us/codecraft/webmagic/downloader/HttpUriRequestConverter.java b/webmagic-core/src/main/java/us/codecraft/webmagic/downloader/HttpUriRequestConverter.java index 28a7ce5..4baaf4a 100644 --- a/webmagic-core/src/main/java/us/codecraft/webmagic/downloader/HttpUriRequestConverter.java +++ b/webmagic-core/src/main/java/us/codecraft/webmagic/downloader/HttpUriRequestConverter.java @@ -74,7 +74,7 @@ public class HttpUriRequestConverter { } if (proxy != null) { - requestConfigBuilder.setProxy(new HttpHost(proxy.getHost(), proxy.getPort())); + requestConfigBuilder.setProxy(new HttpHost(proxy.getHost(), proxy.getPort(), proxy.getScheme())); } requestBuilder.setConfig(requestConfigBuilder.build()); HttpUriRequest httpUriRequest = requestBuilder.build(); diff --git a/webmagic-core/src/main/java/us/codecraft/webmagic/proxy/Proxy.java b/webmagic-core/src/main/java/us/codecraft/webmagic/proxy/Proxy.java index 4b49557..fe3f78d 100644 --- a/webmagic-core/src/main/java/us/codecraft/webmagic/proxy/Proxy.java +++ b/webmagic-core/src/main/java/us/codecraft/webmagic/proxy/Proxy.java @@ -2,6 +2,8 @@ package us.codecraft.webmagic.proxy; public class Proxy { + private String scheme; + private String host; private int port; @@ -11,8 +13,13 @@ public class Proxy { private String password; public Proxy(String host, int port) { + this(host, port, null); + } + + public Proxy(String host, int port, String scheme) { this.host = host; this.port = port; + this.scheme = scheme; } public Proxy(String host, int port, String username, String password) { @@ -22,7 +29,15 @@ public class Proxy { this.password = password; } - public String getHost() { + public String getScheme() { + return scheme; + } + + public void setScheme(String scheme) { + this.scheme = scheme; + } + + public String getHost() { return host; } @@ -47,6 +62,7 @@ public class Proxy { if (port != proxy.port) return false; if (host != null ? !host.equals(proxy.host) : proxy.host != null) return false; + if (scheme != null ? !scheme.equals(proxy.scheme) : proxy.scheme != null) return false; if (username != null ? !username.equals(proxy.username) : proxy.username != null) return false; return password != null ? password.equals(proxy.password) : proxy.password == null; } @@ -55,6 +71,7 @@ public class Proxy { public int hashCode() { int result = host != null ? host.hashCode() : 0; result = 31 * result + port; + result = 31 * result + (scheme != null ? scheme.hashCode() : 0); result = 31 * result + (username != null ? username.hashCode() : 0); result = 31 * result + (password != null ? password.hashCode() : 0); return result; @@ -62,12 +79,8 @@ public class Proxy { @Override public String toString() { - return "Proxy{" + - "host='" + host + '\'' + - ", port=" + port + - ", username='" + username + '\'' + - ", password='" + password + '\'' + - '}'; + return String.format("Proxy{scheme='%1$s', host='%2$s', port=%3$d, username='%4$s', password='%5$s'}", + scheme, host, port, username, password); } }