title: Enabling specific SSL protocols with Android WebViewClient
body: <p>My application uses <code>WebViewClient</code> to make SSL connections to the server.
  The server is configured to only accept TLSv1.1 and above protocols.</p>
  <ol>
  <li>How do I check which SSL protocols are a) Supported and b) Enabled by default  when using Android <code>WebViewClient</code> on a device.</li>
  <li>How do I enable specific SSL protocols for Android WebViewClient instance used in my application.</li>
  </ol>
  <p>On one of the test devices running Android 4.3,
  <code>WebViewClient</code> throws <code>onReceivedError</code> callback with the following description:</p>
  <blockquote>
  <p>&quot;Failed to perform SSL handshake&quot;</p>
  </blockquote>
  <p>Chrome logs are as follows:</p>
  <pre><code>01-29 15:58:00.073 5486 5525 W chromium_net: external/chromium/net/http/http_stream_factory_impl_job.cc:865: [0129/155800:WARNING:http_stream_factory_impl_job.cc(865)] Falling back to SSLv3 because host is TLS intolerant: 10.209.126.125:443 01-29 15:58:00.083 5486 5525 E chromium_net: external/chromium/net/socket/ssl_client_socket_openssl.cc:792: [0129/155800:ERROR:ssl_client_socket_openssl.cc(792)] handshake failed; returned 0, SSL error code 5, net_error -107 
  </code></pre>
  <p>My application also uses <code>HttpClient</code> and <code>HttpsUrlConnection</code> classes to setup SSL Connections. I was able to use <code>SSLSocket</code> API to enable specific protocols when using these classes.
  <a href="http://developer.android.com/reference/javax/net/ssl/SSLSocket.html#setEnabledProtocols(java.lang.String%5B%5D)" rel="nofollow noreferrer">http://developer.android.com/reference/javax/net/ssl/SSLSocket.html#setEnabledProtocols(java.lang.String[])</a></p>
  <p>I need to do the same with <code>WebViewClient</code>.</p>