2012-08-17 305 views
2

對於我的應用程序,用戶輸入服務器名稱,應用程序應該嘗試HTTPS,並在HTTPS失敗時回退到HTTP。精細。android webview:空白頁面,對SSL錯誤沒有回調

我明白關於使用WebViewClient.onReceivedSslError()來處理SSL錯誤,並且大多數情況下工作正常。但是,偶爾,我看到這種方法不叫,儘管在日誌中看到這兩條線,

08-17 08:55:33.430: W/chromium(3264): external/chromium/net/http/http_stream_factory_impl_job.cc:865: [0817/085533:WARNING:http_stream_factory_impl_job.cc(865)] Falling back to SSLv3 because host is TLS intolerant: svcstable1.hs.trcint.com:80 
08-17 08:55:33.490: E/chromium(3264): external/chromium/net/socket/ssl_client_socket_openssl.cc:780: [0817/085533:ERROR:ssl_client_socket_openssl.cc(780)] handshake failed; returned -1, SSL error code 1, net_error -107 

這會偶爾發生。它會連續失敗3次,然後工作正常,我不能再次失敗。

在這一點上,我正在考慮自己提取頁面內容並將數據設置到Web視圖中。我寧願不這樣做,但這似乎是我現在唯一的選擇。

有什麼想法? 謝謝。

回答

1

回答我自己的問題。我從來沒有能夠找到原因或解決方案。我最終使用HttpClient在將其連接到WebView之前「測試」連接。

非常多的痛苦,尤其是當WebView有什麼似乎是健壯的錯誤處理機制。

+0

我也面臨同樣的問題,請在您的答案中添加更多細節,您的意思是「測試」是什麼? – 2015-08-25 10:52:34

+0

我的意思是通過http客戶端打開連接。你也可以使用UrlConnection。 – 2015-08-25 18:23:34