如果我使用以下代码,例如,我想更改证书的验证方式。
trm =某个信托经理
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, new TrustManager[] { trm }, null);
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
然后,这将为将来创建的所有https连接设置SSLContext,而不管是什么线程。控制范围的最简洁方法是什么,以便我只为那些我想要的调用设置它?
答案 0 :(得分:10)
您可以在要使用此信任库的实际连接对象上设置套接字工厂:
HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection();
urlConnection.setSSLSocketFactory(sc.getSocketFactory());
这样做而不是调用setDefaultSSLSocketFactory
。