В OkHttp3 следующее устарело: [A] :
sslSocketFactory(SSLSocketFactory sslSocketFactory)
Заменяется на [B] :
sslSocketFactory(SSLSocketFactory sslSocketFactory, X509TrustManager trustManager).
Вот мои вопросы:
Дополнительная информация:
При создании объекта SSLSocketFactory уже можно указать trustManager в
sslContext.init(KeyManager[] arg0, TrustManager[] arg1, SecureRandom arg2).
Например, я получаю объект SSLSocketFactory , выполнив:
public SSLSocketFactory getSSLSocketFactory() {
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(getKeyManager(), getTrustManager(), new SecureRandom());
return sslContext.getSocketFactory();
}
С getTrustManager () методом, который возвращает TrustManager [] , который содержит сертификат сервера, которому клиент должен доверять.
Теперь, с
sslSocketFactory(SSLSocketFactory sslSocketFactory, X509TrustManager trustManager)
ожидает, что я предоставлю объект X509TrustManager , я справляюсь с этим, выполняя:
OkHttpClient okClient = new OkHttpClient.Builder().sslSocketFactory(getSSLSocketFactory(), (X509TrustManager) getTrustManager()[0]).build();
Однако я чувствую, что это не то, как они ожидали, что мы будем его использовать. Так что любые входные данные приветствуются.
Спасибо.