DoKit
DoKit copied to clipboard
DoraemonKit 在android10 上的 OKhttp bug
java.lang.IllegalStateException: Unable to extract the trust manager on Android10Platform, sslSocketFactory is class com.android.org.conscrypt.OpenSSLSocketFactoryImpl at okhttp3.OkHttpClient$Builder.sslSocketFactory(OkHttpClient.kt:751) at com.didichuxing.doraemonkit.aop.urlconnection.ObsoleteUrlFactory$OkHttpsURLConnection.setSSLSocketFactory(ObsoleteUrlFactory.java:1300) at com.tencent.imsdk.looper.HttpClient$3.run(HttpClient.java:135) at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187) at java.util.concurre
java.lang.IllegalStateException: Unable to extract the trust manager on Android10Platform, sslSocketFactory is class com.android.org.conscrypt.OpenSSLSocketFactoryImpl at okhttp3.OkHttpClient$Builder.sslSocketFactory(OkHttpClient.kt:751) at com.didichuxing.doraemonkit.aop.urlconnection.ObsoleteUrlFactory$OkHttpsURLConnection.setSSLSocketFactory(ObsoleteUrlFactory.java:1300) at com.tencent.imsdk.looper.HttpClient$3.run(HttpClient.java:135) at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187) at java.util.concurre
我一直都是用Android 10进行测试的 没问题 你的okhttp版本是多少?
java.lang.IllegalStateException: Unable to extract the trust manager on Android10Platform, sslSocketFactory is class com.android.org.conscrypt.OpenSSLSocketFactoryImpl at okhttp3.OkHttpClient$Builder.sslSocketFactory(OkHttpClient.kt:751) at com.didichuxing.doraemonkit.aop.urlconnection.ObsoleteUrlFactory$OkHttpsURLConnection.setSSLSocketFactory(ObsoleteUrlFactory.java:1300) at com.tencent.imsdk.looper.HttpClient$3.run(HttpClient.java:135) at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187) at java.util.concurre
我一直都是用Android 10进行测试的 没问题 你的okhttp版本是多少?
okhttp 3.12.1
java.lang.IllegalStateException: Unable to extract the trust manager on Android10Platform, sslSocketFactory is class com.android.org.conscrypt.OpenSSLSocketFactoryImpl at okhttp3.OkHttpClient$Builder.sslSocketFactory(OkHttpClient.kt:751) at com.didichuxing.doraemonkit.aop.urlconnection.ObsoleteUrlFactory$OkHttpsURLConnection.setSSLSocketFactory(ObsoleteUrlFactory.java:1305) at com.arialyy.aria.http.ConnectionHelp.handleConnection(ConnectionHelp.java:120) at com.arialyy.aria.http.download.HttpDFileInfoTask.run(HttpDFileInfoTask.java:81) at com.arialyy.aria.core.loader.NormalLoader.handleTask(NormalLoader.java:101) at com.arialyy.aria.core.loader.AbsNormalLoader.startFlow(AbsNormalLoader.java:133) at com.arialyy.aria.core.loader.AbsNormalLoader.run(AbsNormalLoader.java:115) at java.lang.Thread.run(Thread.java:923)
/**
* Sets the socket factory used to secure HTTPS connections. If unset, the system default will
* be used.
*
* @deprecated [SSLSocketFactory] does not expose its [X509TrustManager], which is a field that
* OkHttp needs to build a clean certificate chain. This method instead must use reflection
* to extract the trust manager. Applications should prefer to call
* `sslSocketFactory(SSLSocketFactory, X509TrustManager)`, which avoids such reflection.
*/
@Deprecated(
message = "Use the sslSocketFactory overload that accepts a X509TrustManager.",
level = DeprecationLevel.ERROR
)
fun sslSocketFactory(sslSocketFactory: SSLSocketFactory) = apply {
if (sslSocketFactory != this.sslSocketFactoryOrNull) {
this.routeDatabase = null
}
this.sslSocketFactoryOrNull = sslSocketFactory
this.x509TrustManagerOrNull = Platform.get().trustManager(sslSocketFactory) ?: throw IllegalStateException(
"Unable to extract the trust manager on ${Platform.get()}, " +
"sslSocketFactory is ${sslSocketFactory.javaClass}")
this.certificateChainCleaner = Platform.get().buildCertificateChainCleaner(x509TrustManagerOrNull!!)
}
同样的问题 okhttp3 4.8.1 dokitx 3.3.5
同样此问题+1 okhttp:3.11.0 dokitx 3.3.5
同样的问题 okhttp 4.7.2 dokitx 3.3.5
同样的问题 okhttp 4.8.1 dokitx 3.3.5
同样遇到+ 1
+1
同样的问题+1 好像是因为下载https 文件,由于没有设置ca证书,而使用了绕过证书的方式,导致了这个问题
最后怎么解决的呀?我也遇到这个问题了?
com.didichuxing.doraemonkit.aop.urlconnection.ObsoleteUrlFactory$OkHttpsURLConnection.setSSLSocketFactory
调用了过时的方法,需要进行替换,参考https://github.com/square/okhttp/issues/5878
同样的问题 okhttp 4.9.3 dokitx 3.5.0.1