2016-06-27 1 views
9

現在、Androidでネイティブと反応しています。 fetch()を使用してapiリクエストを作成していますが、リクエストではネットワークリクエストの失敗が発生します。これは、エンドポイントがSSL証明書を持たないためです。いくつかのxcodeファイルを変更することで、iOSのこのチェックを削除することができました。 Androidでssl証明書のチェックを無視する方法はありますか?AndroidのネイティブでSSL証明書のチェックを無視する

+2

これにはどのような解決策がありますか? – Upendra

答えて

1
/** 
* Disables the SSL certificate checking for new instances of {@link HttpsURLConnection} This has been created to 
* aid testing on a local box, not for use on production. 
*/ 
private static void disableSSLCertificateChecking() { 
    TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { 
     public X509Certificate[] getAcceptedIssuers() { 
      return null; 
     } 

     @Override 
     public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { 
      // Not implemented 
     } 

     @Override 
     public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { 
      // Not implemented 
     } 
    } }; 

    try { 
     SSLContext sc = SSLContext.getInstance("TLS"); 

     sc.init(null, trustAllCerts, new java.security.SecureRandom()); 

     HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); 
    } catch (KeyManagementException e) { 
     e.printStackTrace(); 
    } catch (NoSuchAlgorithmException e) { 
     e.printStackTrace(); 
    } 
} 

ここでこれが見つかりました:https://gist.github.com/aembleton/889392。それが動作するかどうかは確かではありませんが、始まりです!