2016-03-11 40 views
1

我有自定義SSLSoсket,與HttpsUrlConnectionOkHttp很好。我如何與我的插座WebView交朋友?WebView和SSLSocket

 connection = (HttpsURLConnection) urlConnection.openConnection(); 
     connection.setSSLSocketFactory(new OpenSSLSocketFactoryImpl()); 
     connection.setInstanceFollowRedirects(false); 
     connection.setDoInput(true); 
     connection.setDoOutput(isPostRequest(method)); 
     connection.setRequestMethod(method); 

回答

2

WebView不使用SSLSocket。但是,它使用當前安裝的X509TrustManager(通過最高優先級的TrustManagerFactory獲取)。因此,如果您對SSLSocket/SSLSocketFactory的定製完全是關於使用定製X509TrustManager,那麼如果您將自己的TrustManagerFactory安裝爲最高優先級的實現,則可以使WebView使用該定製X509TrustManager。對於任何其他自定義(例如,啓用的密碼套件的不同列表),您都不幸運。

+0

我想用自定義密碼套件通過webview打開我的網站。我該怎麼做?我發現解決方案在shouldInterceptRequest(WebViewClient)中使用HttpsUrlConnection,但我認爲這是不好的決定。 –