我有两个使用HttpClient的代码,如果端点需要SSL,则为第一部分第二是具有基本身份验证的代理连接我的问题是如何使此代码成为条件代码,以便在我只有SSL +代理或SSL的情况下我很难弄清楚如何设置默认凭据,例如在使用SSL部分中的客户端创建客户端之后]
.setDefaultCredentialsProvider(credsProvider)
这是我需要SSL时如何创建客户端的方法
CloseableHttpClient client = null; if(conf.isUseSslConfig()) { SSLContext sslcontext = SSLContexts.custom() .loadTrustMaterial(new File(conf.getTrustStoreLocation()), conf.getTrustStorePassword().toCharArray(), new TrustSelfSignedStrategy()).build(); // Allow protocols SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext,conf.getTlsVersions(), null, SSLConnectionSocketFactory.getDefaultHostnameVerifier()); client = HttpClients.custom().setSSLSocketFactory(sslsf).build(); }else { client= HttpClients.createDefault(); }
这是需要代理身份验证时如何创建客户端的方法:
if(conf.isUseProxyConfig()){ CredentialsProvider credsProvider = new BasicCredentialsProvider(); credsProvider.setCredentials( new AuthScope("fakeProxy.xerox.com", 80), new UsernamePasswordCredentials("xeroxUser","fakePassword123")); HttpClients.custom() .setDefaultCredentialsProvider(credsProvider).build(); }
所以最重要的是如何使两个部分一起工作,以防万一
我有使用HttpClient的两段代码,第一部分是在端点需要SSL的情况下,第二部分是具有基本身份验证的代理连接。我的问题是如何使该代码成为条件……