2015-02-24 14 views
5

używam standardowego kawałek koduSSL Handshake zawiedzie podłączeniem do Google z Android klienta

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

połączyć się z API Miejsc Google z Android klienta. Jednak otrzymuję ten wyjątek:

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) 

Jakieś pomysły? Zauważyłem, że dzieje się tak tylko wtedy, gdy używam OkTH dla żądań, ale nie dla tego konkretnego żądania, ale w innych częściach mojej aplikacji. Dlaczego więc okhttp odgrywa tu rolę (jak pokazano w stosie stacktrace)?

Odpowiedz

1

Ten problem rozwiązuje się, przełączając do najnowszej wersji (2.2 już teraz) OkHttp (używałem wcześniej 1.6).

+3

Czy możesz wyjaśnić to jeszcze trochę, proszę? ponieważ mam ten sam problem –

+1

@ Mr.Noob Właśnie zmieniłem zależność i zacząłem używać najnowszej wersji, a problem zniknął. Nie bardzo rozumiałem, dlaczego tak się dzieje. – splinter123

Powiązane problemy