SSL握手无法从Android客户端连接到Google

时间:2015-02-24 01:36:59

标签: java android ssl

我正在使用标准代码

URL url = new URL(sb.toString());
conn = (HttpsURLConnection) url.openConnection();
InputStreamReader in = new InputStreamReader(conn.getInputStream());

从Android客户端连接到Google Places API。但是我得到了这个例外:

02-24 02:29:35.535: E/AdapterClass(3122):   at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:374)
02-24 02:29:35.535: E/AdapterClass(3122):   at com.android.okhttp.Connection.upgradeToTls(Connection.java:197)
02-24 02:29:35.535: E/AdapterClass(3122): Caused by: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0xaf85c200: Failure in SSL library, usually a protocol error
02-24 02:29:35.535: E/AdapterClass(3122): error:1407743E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert inappropriate fallback (external/openssl/ssl/s23_clnt.c:765 0xac3f9e61:0x00000000)

有什么想法吗?我注意到这只发生在我使用OkHttp请求时,但不是针对此特定请求,而是在我的应用程序的其他部分。那么为什么okhttp会在这里发挥作用(如堆栈跟踪中所示)?

1 个答案:

答案 0 :(得分:1)

这个问题通过切换到OkHttp的最新版本(现在是2.2)得到解决(之前我使用的是1.6)。