|
|
|
@ -16,12 +16,17 @@ import com.lzy.okgo.OkGo; |
|
|
|
|
|
|
|
import java.io.PrintWriter; |
|
|
|
import java.io.StringWriter; |
|
|
|
import java.security.SecureRandom; |
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
import java.util.Date; |
|
|
|
import java.util.concurrent.TimeUnit; |
|
|
|
import java.security.cert.CertificateException; |
|
|
|
import java.security.cert.X509Certificate; |
|
|
|
|
|
|
|
import javax.net.ssl.HostnameVerifier; |
|
|
|
import javax.net.ssl.SSLContext; |
|
|
|
import javax.net.ssl.SSLSession; |
|
|
|
import javax.net.ssl.SSLSocketFactory; |
|
|
|
import javax.net.ssl.TrustManager; |
|
|
|
import javax.net.ssl.TrustManagerFactory; |
|
|
|
import javax.net.ssl.X509TrustManager; |
|
|
|
@ -119,9 +124,7 @@ public class MyApplication extends Application { |
|
|
|
try { |
|
|
|
int currentApiVersion = android.os.Build.VERSION.SDK_INT; |
|
|
|
OkHttpClient client; |
|
|
|
//3576 http 协议
|
|
|
|
if (currentApiVersion <= 34) { |
|
|
|
// 当前系统版本是Android 12
|
|
|
|
try{ |
|
|
|
OkHttpClient.Builder builder = new OkHttpClient.Builder(); |
|
|
|
builder.readTimeout(10, TimeUnit.SECONDS); |
|
|
|
builder.writeTimeout(10, TimeUnit.SECONDS); |
|
|
|
@ -129,8 +132,7 @@ public class MyApplication extends Application { |
|
|
|
builder.sslSocketFactory(SSLSocketClient.getSSLSocketFactory());// 过滤https证书
|
|
|
|
builder.hostnameVerifier(SSLSocketClient.getHostnameVerifier()); |
|
|
|
client = builder.build(); |
|
|
|
} else { |
|
|
|
// 当前系统版本是Android 14
|
|
|
|
} catch(Exception e) { |
|
|
|
client = createOkHttpClient(this); |
|
|
|
} |
|
|
|
OkGo.getInstance().init(this).setOkHttpClient(client).setRetryCount(0); |
|
|
|
@ -154,10 +156,9 @@ public class MyApplication extends Application { |
|
|
|
return new X509Certificate[0]; |
|
|
|
} |
|
|
|
}; |
|
|
|
// 2. 初始化 SSLContext
|
|
|
|
|
|
|
|
SSLContext sslContext = SSLContext.getInstance("TLS"); |
|
|
|
sslContext.init(null, new TrustManager[]{trustManager}, null); |
|
|
|
// 3. 用自定义的 SSLContext 创建 SSLSocketFactory
|
|
|
|
javax.net.ssl.SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory(); |
|
|
|
// 4. 配置 OkHttpClient
|
|
|
|
return new OkHttpClient.Builder() |
|
|
|
|