package top.jie65535.mirai.utils import okhttp3.OkHttpClient import java.security.cert.CertificateException import javax.net.ssl.SSLContext import javax.net.ssl.TrustManager import javax.net.ssl.X509TrustManager class UnsafeOkHttpClient { companion object { fun getUnsafeOkHttpClient(): OkHttpClient.Builder { try { // Create a trust manager that does not validate certificate chains val trustAllCerts = arrayOf(object : X509TrustManager { @Throws(CertificateException::class) override fun checkClientTrusted(chain: Array, authType: String) { } @Throws(CertificateException::class) override fun checkServerTrusted(chain: Array, authType: String) { } override fun getAcceptedIssuers(): Array { return arrayOf() } }) // Install the all-trusting trust manager val sslContext = SSLContext.getInstance("SSL") sslContext.init(null, trustAllCerts, java.security.SecureRandom()) // Create an ssl socket factory with our all-trusting manager val sslSocketFactory = sslContext.socketFactory val builder = OkHttpClient.Builder() builder.sslSocketFactory(sslSocketFactory, trustAllCerts[0] as X509TrustManager) // builder.hostnameVerifier { _, _ -> true } builder.hostnameVerifier { _, _ -> true } return builder } catch (e: Exception) { throw RuntimeException(e) } } } }