|
10 | 10 | import org.apache.http.config.Registry; |
11 | 11 | import org.apache.http.config.RegistryBuilder; |
12 | 12 | import org.apache.http.config.SocketConfig; |
| 13 | +import org.apache.http.conn.ConnectionKeepAliveStrategy; |
13 | 14 | import org.apache.http.conn.DnsResolver; |
14 | 15 | import org.apache.http.conn.HttpClientConnectionManager; |
15 | 16 | import org.apache.http.conn.socket.ConnectionSocketFactory; |
@@ -48,12 +49,13 @@ public class ApacheHttpDnsClientBuilder implements ApacheHttpClientBuilder { |
48 | 49 | private int maxTotalConn = 50; |
49 | 50 | private String userAgent; |
50 | 51 |
|
51 | | - private DnsResolver dnsResover; |
| 52 | + private DnsResolver dnsResolver; |
52 | 53 |
|
53 | 54 | private HttpRequestRetryHandler httpRequestRetryHandler = (IOException exception, int executionCount, HttpContext context) -> false; |
54 | 55 | private SSLConnectionSocketFactory sslConnectionSocketFactory = SSLConnectionSocketFactory.getSocketFactory(); |
55 | 56 | private PlainConnectionSocketFactory plainConnectionSocketFactory = PlainConnectionSocketFactory.getSocketFactory(); |
56 | 57 | private String httpProxyHost; |
| 58 | + private ConnectionKeepAliveStrategy keepAliveStrategy; |
57 | 59 |
|
58 | 60 | private int httpProxyPort; |
59 | 61 | private String httpProxyUsername; |
@@ -97,6 +99,18 @@ public ApacheHttpClientBuilder httpProxyPassword(String httpProxyPassword) { |
97 | 99 | return this; |
98 | 100 | } |
99 | 101 |
|
| 102 | + @Override |
| 103 | + public ApacheHttpClientBuilder httpRequestRetryHandler(HttpRequestRetryHandler httpRequestRetryHandler) { |
| 104 | + this.httpRequestRetryHandler = httpRequestRetryHandler; |
| 105 | + return this; |
| 106 | + } |
| 107 | + |
| 108 | + @Override |
| 109 | + public ApacheHttpClientBuilder keepAliveStrategy(ConnectionKeepAliveStrategy keepAliveStrategy) { |
| 110 | + this.keepAliveStrategy = keepAliveStrategy; |
| 111 | + return this; |
| 112 | + } |
| 113 | + |
100 | 114 | @Override |
101 | 115 | public ApacheHttpClientBuilder sslConnectionSocketFactory(SSLConnectionSocketFactory sslConnectionSocketFactory) { |
102 | 116 | this.sslConnectionSocketFactory = sslConnectionSocketFactory; |
@@ -202,11 +216,11 @@ private synchronized void prepare() { |
202 | 216 |
|
203 | 217 | @SuppressWarnings("resource") |
204 | 218 | PoolingHttpClientConnectionManager connectionManager; |
205 | | - if (dnsResover != null) { |
| 219 | + if (dnsResolver != null) { |
206 | 220 | if (log.isDebugEnabled()) { |
207 | 221 | log.debug("specified dns resolver."); |
208 | 222 | } |
209 | | - connectionManager = new PoolingHttpClientConnectionManager(registry, dnsResover); |
| 223 | + connectionManager = new PoolingHttpClientConnectionManager(registry, dnsResolver); |
210 | 224 | } else { |
211 | 225 | if (log.isDebugEnabled()) { |
212 | 226 | log.debug("Not specified dns resolver."); |
@@ -254,12 +268,12 @@ public CloseableHttpClient build() { |
254 | 268 | return this.httpClientBuilder.build(); |
255 | 269 | } |
256 | 270 |
|
257 | | - public DnsResolver getDnsResover() { |
258 | | - return dnsResover; |
| 271 | + public DnsResolver getDnsResolver() { |
| 272 | + return dnsResolver; |
259 | 273 | } |
260 | 274 |
|
261 | | - public void setDnsResover(DnsResolver dnsResover) { |
262 | | - this.dnsResover = dnsResover; |
| 275 | + public void setDnsResolver(DnsResolver dnsResolver) { |
| 276 | + this.dnsResolver = dnsResolver; |
263 | 277 | } |
264 | 278 |
|
265 | 279 | public static class IdleConnectionMonitorThread extends Thread { |
|
0 commit comments