mirror of
https://github.com/apache/httpcomponents-client.git
synced 2025-02-28 05:39:07 +00:00
Improvements in the ClientConfiguration sample app
This commit is contained in:
parent
09ae5f212a
commit
9ad56ad734
@ -54,10 +54,9 @@
|
|||||||
import org.apache.hc.client5.http.impl.classic.HttpClients;
|
import org.apache.hc.client5.http.impl.classic.HttpClients;
|
||||||
import org.apache.hc.client5.http.impl.io.ManagedHttpClientConnectionFactory;
|
import org.apache.hc.client5.http.impl.io.ManagedHttpClientConnectionFactory;
|
||||||
import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
|
import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
|
||||||
|
import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManagerBuilder;
|
||||||
import org.apache.hc.client5.http.io.ManagedHttpClientConnection;
|
import org.apache.hc.client5.http.io.ManagedHttpClientConnection;
|
||||||
import org.apache.hc.client5.http.protocol.HttpClientContext;
|
import org.apache.hc.client5.http.protocol.HttpClientContext;
|
||||||
import org.apache.hc.client5.http.socket.ConnectionSocketFactory;
|
|
||||||
import org.apache.hc.client5.http.socket.PlainConnectionSocketFactory;
|
|
||||||
import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
|
import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
|
||||||
import org.apache.hc.core5.http.ClassicHttpRequest;
|
import org.apache.hc.core5.http.ClassicHttpRequest;
|
||||||
import org.apache.hc.core5.http.ClassicHttpResponse;
|
import org.apache.hc.core5.http.ClassicHttpResponse;
|
||||||
@ -66,8 +65,6 @@
|
|||||||
import org.apache.hc.core5.http.ParseException;
|
import org.apache.hc.core5.http.ParseException;
|
||||||
import org.apache.hc.core5.http.config.CharCodingConfig;
|
import org.apache.hc.core5.http.config.CharCodingConfig;
|
||||||
import org.apache.hc.core5.http.config.Http1Config;
|
import org.apache.hc.core5.http.config.Http1Config;
|
||||||
import org.apache.hc.core5.http.config.Registry;
|
|
||||||
import org.apache.hc.core5.http.config.RegistryBuilder;
|
|
||||||
import org.apache.hc.core5.http.impl.io.DefaultClassicHttpResponseFactory;
|
import org.apache.hc.core5.http.impl.io.DefaultClassicHttpResponseFactory;
|
||||||
import org.apache.hc.core5.http.impl.io.DefaultHttpRequestWriterFactory;
|
import org.apache.hc.core5.http.impl.io.DefaultHttpRequestWriterFactory;
|
||||||
import org.apache.hc.core5.http.impl.io.DefaultHttpResponseParser;
|
import org.apache.hc.core5.http.impl.io.DefaultHttpResponseParser;
|
||||||
@ -152,10 +149,7 @@ public Header parseHeader(final CharArrayBuffer buffer) {
|
|||||||
|
|
||||||
// Create a registry of custom connection socket factories for supported
|
// Create a registry of custom connection socket factories for supported
|
||||||
// protocol schemes.
|
// protocol schemes.
|
||||||
final Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
|
final SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext);
|
||||||
.register("http", PlainConnectionSocketFactory.INSTANCE)
|
|
||||||
.register("https", new SSLConnectionSocketFactory(sslContext))
|
|
||||||
.build();
|
|
||||||
|
|
||||||
// Use custom DNS resolver to override the system DNS resolution.
|
// Use custom DNS resolver to override the system DNS resolution.
|
||||||
final DnsResolver dnsResolver = new SystemDefaultDnsResolver() {
|
final DnsResolver dnsResolver = new SystemDefaultDnsResolver() {
|
||||||
@ -172,9 +166,13 @@ public InetAddress[] resolve(final String host) throws UnknownHostException {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Create a connection manager with custom configuration.
|
// Create a connection manager with custom configuration.
|
||||||
final PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(
|
final PoolingHttpClientConnectionManager connManager = PoolingHttpClientConnectionManagerBuilder.create()
|
||||||
socketFactoryRegistry, PoolConcurrencyPolicy.STRICT, PoolReusePolicy.LIFO, TimeValue.ofMinutes(5),
|
.setSSLSocketFactory(sslConnectionSocketFactory)
|
||||||
null, dnsResolver, null);
|
.setConnectionFactory(connFactory)
|
||||||
|
.setDnsResolver(dnsResolver)
|
||||||
|
.setPoolConcurrencyPolicy(PoolConcurrencyPolicy.STRICT)
|
||||||
|
.setConnPoolPolicy(PoolReusePolicy.LIFO)
|
||||||
|
.build();
|
||||||
|
|
||||||
// Configure the connection manager to use socket configuration either
|
// Configure the connection manager to use socket configuration either
|
||||||
// by default or for a specific host.
|
// by default or for a specific host.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user