Приведенный ниже код работает с 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)
Спасибо,
Нарайанан