小编Cy.*_*Cup的帖子

OkHttp3 中的 SSLSocketFactory 和 TrustManager 冗余

在 OkHttp3 中,不推荐使用以下内容[A]

    sslSocketFactory(SSLSocketFactory sslSocketFactory) 
Run Code Online (Sandbox Code Playgroud)

它被替换为[B]

    sslSocketFactory(SSLSocketFactory sslSocketFactory, X509TrustManager trustManager).
Run Code Online (Sandbox Code Playgroud)

以下是我的问题:


更多信息:

创建SSLSocketFactory对象时,已经可以在

sslContext.init(KeyManager[] arg0, TrustManager[] arg1, SecureRandom arg2).
Run Code Online (Sandbox Code Playgroud)

例如,我通过执行以下操作获得SSLSocketFactory对象:

public SSLSocketFactory getSSLSocketFactory() {
  SSLContext sslContext = SSLContext.getInstance("TLS");
  sslContext.init(getKeyManager(), getTrustManager(), new SecureRandom());
  return sslContext.getSocketFactory();
}
Run Code Online (Sandbox Code Playgroud)

使用getTrustManager ()返回一个TrustManager[] 的方法,其中包含客户端应该信任的服务器证书。

现在,既然

sslSocketFactory(SSLSocketFactory sslSocketFactory, X509TrustManager trustManager) 
Run Code Online (Sandbox Code Playgroud)

希望我提供一个X509TrustManager对象,我通过以下方式处理:

OkHttpClient okClient = …
Run Code Online (Sandbox Code Playgroud)

java sslsocketfactory okhttp3 x509trustmanager

6
推荐指数
1
解决办法
1234
查看次数