例如,如果我使用以下代码是因为我想更改验证证书的方式。

trm = 一些信任管理器

SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, new TrustManager[] { trm }, null);
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

然后,这将为将来建立的所有 https 连接设置 SSLContext,而不管是什么线程。什么是控制范围的最干净的方法,以便我只为我想要的那些调用设置它?

最佳答案

您可以在要使用此信任存储的实际连接对象上设置套接字工厂:

HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection();
urlConnection.setSSLSocketFactory(sc.getSocketFactory());

这样做而不是调用 setDefaultSSLSocketFactory

关于java - 如何控制 SSLContext 范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6025525/

10-13 09:08