18034727885
2026-08-19 377866167c6f997ada5aa38c6e08fc697de61bd5
app/src/main/java/com/driver/igotrip/netUtls/HttpManager.java
@@ -6,7 +6,9 @@
import android.util.Log;
import com.driver.igotrip.BuildConfig;
import com.driver.igotrip.R;
import com.driver.igotrip.base.Const;
import com.driver.igotrip.base.MyApplication;
import com.driver.igotrip.utils.LogUtils;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
@@ -15,11 +17,21 @@
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Type;
import java.security.KeyStore;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
import javax.net.ssl.X509TrustManager;
import cn.sinata.xldutils.utils.SPUtils;
import io.reactivex.Observable;
@@ -70,6 +82,44 @@
        }
    }
    private SSLSocketFactory getSSLSocketFactory(X509TrustManager trustManager) {
        try {
            SSLContext tls = SSLContext.getInstance("TLS");
            tls.init(null, new TrustManager[]{trustManager}, null);
            return tls.getSocketFactory();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    private X509TrustManager createTrustManager(int certificateResId) {
        try {
            CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
            try (
                    // 读取证书文件
                    InputStream inputStream = MyApplication.Companion.getAppContext().getResources().openRawResource(certificateResId)
            ) {
                X509Certificate certificate = (X509Certificate) certificateFactory.generateCertificate(inputStream);
                // 创建包含该证书的KeyStore
                KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
                keyStore.load(null, null);
                keyStore.setCertificateEntry("server", certificate);
                // 创建TrustManager
                TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
                trustManagerFactory.init(keyStore);
                return (X509TrustManager) trustManagerFactory.getTrustManagers()[0];
            } catch (Exception e) {
                e.printStackTrace();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 初始化数据
     *
@@ -80,6 +130,13 @@
        builder.connectTimeout(3, TimeUnit.MINUTES);
        builder.readTimeout(3, TimeUnit.MINUTES);
        builder.writeTimeout(3, TimeUnit.MINUTES);
        X509TrustManager trustManager = createTrustManager(R.raw.star_gopost_ci);
        if (trustManager != null) {
            SSLSocketFactory sslSocketFactory = getSSLSocketFactory(trustManager);
            if (sslSocketFactory != null) {
                builder.sslSocketFactory(sslSocketFactory, trustManager);
            }
        }
//        builder.addInterceptor(new Interceptor() {
//            @Override
//            public Response intercept(Chain chain) throws IOException {