Skip to content
This repository was archived by the owner on May 23, 2025. It is now read-only.

Commit 61f3900

Browse files
committed
fix: fix network error
1 parent a36f0ae commit 61f3900

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

app/src/main/java/cn/umafan/lib/android/util/network/ServiceCreator.kt

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,54 @@
11
package cn.umafan.lib.android.util.network
22

3+
import android.annotation.SuppressLint
34
import okhttp3.OkHttpClient
45
import retrofit2.Retrofit
56
import retrofit2.converter.gson.GsonConverterFactory
67
import java.net.Proxy
8+
import java.security.SecureRandom
9+
import java.security.cert.*
10+
import javax.net.ssl.SSLContext
11+
import javax.net.ssl.SSLSocketFactory
12+
import javax.net.ssl.TrustManager
13+
import javax.net.ssl.X509TrustManager
14+
715

816
object ServiceCreator {
917

18+
private fun createSSLSocketFactory(): SSLSocketFactory? {
19+
var ssfFactory: SSLSocketFactory? = null
20+
try {
21+
val mMyTrustManager = MyTrustManager()
22+
val sc = SSLContext.getInstance("TLS")
23+
sc.init(null, arrayOf<TrustManager>(mMyTrustManager), SecureRandom())
24+
ssfFactory = sc.socketFactory
25+
} catch (ignored: Exception) {
26+
ignored.printStackTrace()
27+
}
28+
return ssfFactory
29+
}
30+
31+
//实现X509TrustManager接口
32+
@SuppressLint("CustomX509TrustManager")
33+
class MyTrustManager : X509TrustManager {
34+
@SuppressLint("TrustAllX509TrustManager")
35+
@Throws(CertificateException::class)
36+
override fun checkClientTrusted(chain: Array<X509Certificate?>?, authType: String?) {}
37+
@SuppressLint("TrustAllX509TrustManager")
38+
@Throws(CertificateException::class)
39+
override fun checkServerTrusted(chain: Array<X509Certificate?>?, authType: String?) {}
40+
41+
override fun getAcceptedIssuers(): Array<X509Certificate> {
42+
return arrayOf()
43+
}
44+
}
45+
46+
1047
private const val BASE_URL = "https://umalib.gitgud.site/"
1148

1249
private val okHttpClient = OkHttpClient.Builder()
1350
.proxy(Proxy.NO_PROXY)
51+
.sslSocketFactory(createSSLSocketFactory()!!, MyTrustManager())
1452
.build()
1553

1654
private val retrofit: Retrofit = Retrofit.Builder()

0 commit comments

Comments
 (0)