【发布时间】:2018-11-08 16:46:33
【问题描述】:
我正在使用 OkHttp,我需要忽略 SSL 错误以进行应用程序调试。这曾经在 Java 8 中工作。
final TrustManager[] trustAllCerts = new TrustManager[] {
new X509TrustManager() {
@Override
public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException {
}
@Override
public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException {
}
@Override
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return new java.security.cert.X509Certificate[]{};
}
}
};
SSLContext sslContext = null;
try {
sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
} catch (Exception s) {
s.printStackTrace();
}
final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
//
//.sslSocketFactory(sslSocketFactory) throws error.
client = new OkHttpClient.Builder().sslSocketFactory(sslSocketFactory).build();
但是在 Java 9 和 10 中我得到了这个错误。
java.lang.UnsupportedOperationException: clientBuilder.sslSocketFactory(SSLSocketFactory) not supported on JDK 9+
是否有另一种方法可以在不使用 sslSocketFactory 的情况下忽略 Java 9 和 10 中的 OkHttp SSL 错误?
【问题讨论】:
-
SSL 错误不容忽视。您需要修复 SSL 错误,并且不要像“
SSLSocketFactory的替代品”这样的兔子洞消失。 -
@EJP 重新阅读我的问题我需要忽略错误,以便我可以使用代理服务器来确保我的请求被正确发送到我的站点。
标签: java ssl java-9 okhttp3 java-10