SSLProtocolException使https连接

问题描述:

当我与我的Web服务器建立一个https连接时,我有一个SSLProtocolException。我在Android 2.3 Gingebread中只有这个例外;相同的代码在所有其他Android版本中工作正常。这个Android版本有问题吗?SSLProtocolException使https连接

我也开了一个错误报告与谷歌:http://code.google.com/p/android/issues/detail?id=16121&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars

我附上了异常:

WARN/System.err(6218): javax.net.ssl.SSLProtocolException: Read error: ssl=0x3c97e8: Failure in SSL library, usually a protocol error WARN/System.err(6218): at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_read(Native Method) WARN/System.err(6218): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:788) WARN/System.err(6218): at org.apache.harmony.luni.internal.net.www.protocol.http.FixedLengthInputStream.read(FixedLengthInputStream.java:44) WARN/System.err(6218): at java.io.BufferedInputStream.read(BufferedInputStream.java:319) WARN/System.err(6218): at android.os.Handler.dispatchMessage(Handler.java:99) WARN/System.err(6218): at android.os.Looper.loop(Looper.java:123) WARN/System.err(6218): at android.os.HandlerThread.run(HandlerThread.java:60)

+0

看起来现在还没有很多关于这个问题的信息。我建议开放一个谷歌的错误。请看看这个问题看起来是相同的问题:http://*.com/questions/5070512/started-getting-ssl-exceptions-on-my-nexus-s-android-9-ok-on-other -devices – 2011-04-06 17:04:45

+0

同意,您不是第一个在Android 2.3.3上获得此版本的人,这可能是OS中的一种回归,因此除了移除对Android 2.3.3的支持(API级别10)在AndroidManifest.xml中。 – SiCN 2011-04-07 08:01:31

+0

谢谢,您的意见非常有用。 – Alex 2011-04-07 10:57:24

尝试使用SSLSocketFactory直接从套接字读取。我在这里发布了一个带有注释代码的测试用例:SSLProtocolException when reading https responses on Android 2.3.3 devices

检查服务器是否需要客户端身份验证。在我的情况下,在tomcat server.xml中,clientAuth =“true”,所以发生错误,因此请将其更改为false。