1818import org .apache .http .*;
1919import org .apache .http .HttpResponse ;
2020import org .apache .http .client .config .CookieSpecs ;
21- import org .apache .http .conn .DnsResolver ;
2221import org .apache .http .conn .routing .HttpRoute ;
2322import org .apache .http .conn .ssl .NoopHostnameVerifier ;
2423import org .apache .http .entity .ContentType ;
2524import org .apache .http .conn .ssl .SSLConnectionSocketFactory ;
2625import org .apache .http .impl .conn .PoolingHttpClientConnectionManager ;
27- import org .apache .http .impl .conn .SystemDefaultDnsResolver ;
2826import org .apache .http .protocol .HttpContext ;
2927import org .apache .http .auth .AuthSchemeProvider ;
3028import org .apache .http .auth .AuthScope ;
6664
6765public class HttpClientJavaLib extends GXHttpClient {
6866
69- private static class FirstIpDnsResolver implements DnsResolver {
70- private final DnsResolver defaultDnsResolver = new SystemDefaultDnsResolver ();
71-
72- @ Override
73- public InetAddress [] resolve (final String host ) throws UnknownHostException {
74- InetAddress [] allIps = defaultDnsResolver .resolve (host );
75- if (allIps != null && allIps .length > 0 ) {
76- return new InetAddress []{allIps [0 ]};
77- }
78- return allIps ;
79- }
80- }
81-
82- private static String getGxIpResolverConfig () {
83- String name = "GX_USE_FIRST_IP_DNS" ;
84- String gxDns = System .getProperty (name );
85- if (gxDns == null || gxDns .trim ().isEmpty ()) {
86- gxDns = System .getenv (name );
87- }
88- if (gxDns != null && gxDns .trim ().equalsIgnoreCase ("true" )) {
89- return gxDns .trim ();
90- } else {
91- return null ;
92- }
93- }
94-
95-
9667 public HttpClientJavaLib () {
9768 getPoolInstance ();
9869 ConnectionKeepAliveStrategy myStrategy = generateKeepAliveStrategy ();
99- HttpClientBuilder builder = HttpClients .custom ()
100- .setConnectionManager (connManager )
101- .setConnectionManagerShared (true )
102- .setKeepAliveStrategy (myStrategy );
103- if (getGxIpResolverConfig () != null ) {
104- builder .setDnsResolver (new FirstIpDnsResolver ());
105- }
106- httpClientBuilder = builder ;
70+ httpClientBuilder = HttpClients .custom ().setConnectionManager (connManager ).setConnectionManagerShared (true ).setKeepAliveStrategy (myStrategy );
10771 cookies = new BasicCookieStore ();
10872 streamsToClose = new Vector <>();
10973 }
@@ -114,10 +78,7 @@ private static void getPoolInstance() {
11478 RegistryBuilder .<ConnectionSocketFactory >create ()
11579 .register ("http" , PlainConnectionSocketFactory .INSTANCE ).register ("https" ,getSSLSecureInstance ())
11680 .build ();
117- boolean useCustomDnsResolver = getGxIpResolverConfig () != null ;
118- PoolingHttpClientConnectionManager connManager = useCustomDnsResolver
119- ? new PoolingHttpClientConnectionManager (socketFactoryRegistry , new FirstIpDnsResolver ())
120- : new PoolingHttpClientConnectionManager (socketFactoryRegistry );
81+ connManager = new PoolingHttpClientConnectionManager (socketFactoryRegistry );
12182 connManager .setMaxTotal ((int ) CommonUtil .val (clientCfg .getProperty ("Client" , "HTTPCLIENT_MAX_SIZE" , "1000" )));
12283 connManager .setDefaultMaxPerRoute ((int ) CommonUtil .val (clientCfg .getProperty ("Client" , "HTTPCLIENT_MAX_PER_ROUTE" , "1000" )));
12384
0 commit comments