RN的Https请求问题

处理RN的https问题:

package com.asmobileinbox;import com.facebook.react.modules.network.OkHttpClientProvider;
import com.facebook.react.modules.network.ReactCookieJarContainer;import java.security.SecureRandom;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.concurrent.TimeUnit;import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.KeyManager;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;import okhttp3.OkHttpClient;/*** Created by 80028939 on 1/22/2018.*/public class HttpsOkHttpClient {/*** react native默认不支持https请求,这里提供支持https的OKHttpClient** @return*/public static OkHttpClient initCustomOkHttpClient() {OkHttpClient.Builder client = new OkHttpClient.Builder().connectTimeout(0, TimeUnit.MILLISECONDS).readTimeout(0, TimeUnit.MILLISECONDS).writeTimeout(0, TimeUnit.MILLISECONDS).cookieJar(new ReactCookieJarContainer());OkHttpClient.Builder builder = OkHttpClientProvider.enableTls12OnPreLollipop(client);builder.sslSocketFactory(getSSLSocketFactory()).hostnameVerifier(new HostnameVerifier() {@Overridepublic boolean verify(String hostname, SSLSession session) {return true; //忽略所有的认证,直接返回了true}});return builder.build();}private static SSLSocketFactory getSSLSocketFactory() {TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {public void checkClientTrusted(X509Certificate[] chain, String authType) throwsCertificateException {}public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {}public X509Certificate[] getAcceptedIssuers() {return new X509Certificate[0];}}};SSLSocketFactory sslSocketFactory = null;try {SSLContext sslContext = SSLContext.getInstance("TLS");sslContext.init((KeyManager[]) null, trustAllCerts, new SecureRandom());sslSocketFactory = sslContext.getSocketFactory();} catch (Exception e) {e.printStackTrace();}return sslSocketFactory;}
}

 

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部