Android - только версия 8 (2.2 froyo) - сбой рукопожатия ssl - PullRequest
3 голосов
/ 20 июля 2010

Приведенный ниже код работает с HTTP (API версии 7 и 8) и HTTPS (API версии 7). Для HTTPS (API версии 8) я получаю сообщение об ошибке «java.io.IOException: сбой рукопожатия SSL: сбой в библиотеке SSL, обычно ошибка протокола»

Любая идея, почему только на 8 версии?

Код ...

            HttpURLConnection connection = null;
            BufferedReader brd  = null;
            String line = "" ;
            StringBuilder sb = new StringBuilder();


            try {
                //Set up the initial connection
                //connection = (HttpURLConnection) new URL("http://MYSERVER.com").openConnection(); //Works
                connection = (HttpURLConnection) new URL("https://MYSERVER.com").openConnection(); //error
                connection.connect();

                    brd  = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                    sb = new StringBuilder();
                    while ((line = brd.readLine()) != null)
                        sb.append(line);

                                  System.out.println(sb.toString());
       } catch (IOException e) {
                e.printStackTrace();
            }  finally{
                //close the connection, set all objects to null
                connection.disconnect();
                brd = null;
                sb = null;
                connection = null;
            }

Полный стек ошибок

WARN / System.err (267): java.io.IOException: сбой рукопожатия SSL: сбой в библиотеке SSL, обычно ошибка протокола WARN / System.err (267): ошибка: 140773F2: подпрограммы SSL: SSL23_GET_SERVER_HELLO: неожиданное сообщение об ошибке sslv3 (external / openssl / ssl / s23_clnt.c: 599 0xaf076ad8: 0x00000000) в org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.nativeconnect (собственный метод) в org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake (OpenSSLSocketImpl.java:316) в org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.getSecureSocket (HttpConnection.java:168) в org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl $ HttpsEngine.connect (HttpsURLConnectionImpl.java:399) на org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl.connect (HttpsURLConnectionImpl.java:147)

Спасибо, Нарайанан

...