3

对于我的应用程序,用户输入服务器名称,应用程序应尝试 HTTPS,如果 HTTPS 失败则回退到 HTTP。美好的。

我了解使用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 视图中。我宁愿不这样做,但这似乎是我目前唯一的选择。

有任何想法吗?

4

1 回答 1

1

我一直无法找到原因或解决方案。我最终使用HttpClient“测试”连接,然后将其交给WebView.

非常痛苦,尤其是当WebView有看似强大的错误处理机制时。

于 2012-08-30T23:03:15.107 回答