首页 > 解决方案 > loadKeyMaterial 方法已弃用,请告诉我替代方法

问题描述

configureBody(request, requestData.getBody())
            configureHeaders(request, requestData.getHeadersAsMap())
            String keyPassphrase = "password";

            KeyStore keyStore = KeyStore.getInstance("JKS");
            keyStore.load(new FileInputStream("Resources/certificates/selfsigned.jks"), keyPassphrase.toCharArray());


            SSLContext sslContext = SSLContexts.custom().loadKeyMaterial(keyStore, "password").build(); //(keyStore, "password").build()

            HttpClient httpClient = HttpClients.custom().setSSLContext(sslContext).build();


            HttpResponse response = httpClient.execute(request, httpClientContext)

coming error:- groovy.lang.MissingMethodException: No signature of method: org.apache.http.ssl.SSLContextBuilder.loadKeyMaterial()

我正在使用 httpclient4.5.5 jar。httpclient4.4 中不推荐使用 loadkeyMaterial 方法。请提出一些替代方案。

标签: apache-httpclient-4.x

解决方案


您应该使用不推荐使用的loadKeyMaterialorg.apache.http.ssl.SSLContextBuilder代替 fo org.apache.http.conn.ssl.SSLContextBuilder

所以,基本上改变你的进口:

// The one deprecated to be removed from your code
//import org.apache.http.conn.ssl.SSLContextBuilder;
// The good one
import org.apache.http.ssl.SSLContextBuilder;

推荐阅读