如何解决Ning async http 客户端 1.9:设置 SSLParametersSNI 主机名的正确方法
以下代码在 1.8 版中有效。 更新到 1.9 版后,删除了 setSSLEngineFactory 方法。 有没有优雅的方法来实现与 1.8 版本类似的方法?
Builder builder = new AsyncHttpClientConfig.Builder();
try {
builder.setSSLContext(sslContext);
builder.setSSLEngineFactory(new SSLEngineFactory() {
public SSLEngine newSSLEngine() throws GeneralSecurityException {
if (sslContext != null) {
SSLEngine sslEngine = sslContext.createSSLEngine();
String sniHostname = null;
try {
URI uri = new URI(baseURI);
sniHostname = uri.getHost();
} catch (URISyntaxException e) {
LOGGER.warn("Failed to init URI",e);
}
if (sniHostname != null) {
List sniHostNames = new ArrayList(1);
sniHostNames.add(new SNIHostName(sniHostname));
SSLParameters sslParameters = new SSLParameters();
sslParameters.setServerNames(sniHostNames);
sslEngine.setSSLParameters(sslParameters);
}
sslEngine.setUseClientMode(true);
return sslEngine;
} else {
return null;
}
}
});
} catch (Exception e) {
LOGGER.error("Failed to init http builder",e);
}
AsyncHttpClientConfig config = builder.build();
client = new AsyncHttpClient();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。