问题似乎是由于在更改连接的
SSLContext和
HostNameVerifier实例之前打开了连接。这是不可能的,因为SSL /
TLS握手甚至在从读取连接内容之前就发生了
InputStream。
换句话说,以下一行
HttpsURLConnection connection = (HttpsURLConnection) cpUrl.openConnection();
应该仅在
SSLContext和
HostNameVerifier实例已向
HttpsURLConnection该类注册后执行。
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());HttpsURLConnection.setDefaultHostnameVerifier(hv);
修正此顺序,应该解决问题,因为现在将使用新参数进行握手。



