Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取详细的异常消息?(SSLHandskaheException)_Java_Android_Exception_Ssl_Sslhandshakeexception - Fatal编程技术网

Java 如何获取详细的异常消息?(SSLHandskaheException)

Java 如何获取详细的异常消息?(SSLHandskaheException),java,android,exception,ssl,sslhandshakeexception,Java,Android,Exception,Ssl,Sslhandshakeexception,我在Android 5.0棒棒糖中使用HttpsUrlConnection有一个SSLHandshakeException 05-05 14:54:08.821 10855-11793/com.soonoo.mobilecampus E/INFO﹕ javax.net.ssl.SSLHandshakeException: Handshake failed at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLS

我在
Android 5.0棒棒糖
中使用
HttpsUrlConnection
有一个
SSLHandshakeException

05-05 14:54:08.821  10855-11793/com.soonoo.mobilecampus E/INFO﹕ javax.net.ssl.SSLHandshakeException: Handshake failed
at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:374)
at com.android.okhttp.Connection.upgradeToTls(Connection.java:238)
at com.android.okhttp.Connection.connect(Connection.java:158)
at com.android.okhttp.Connection.connect(Connection.java:170)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:309)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:242)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:388)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:118)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:220)
at com.android.okhttp.internal.http.DelegatingHttpsURLConnection.getOutputStream(DelegatingHttpsURLConnection.java:218)
at com.android.okhttp.internal.http.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:25)
at com.soonoo.mobilecampus.User.login(User.java:72)
at com.soonoo.mobilecampus.LoginView$Login.doInBackground(LoginView.java:112)
at com.soonoo.mobilecampus.LoginView$Login.doInBackground(LoginView.java:84)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0xaaaf8a00: Failure in SSL library, usually a protocol error
error:1407743E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert inappropriate fallback (external/openssl/ssl/s23_clnt.c:765 0xa9295b25:0x00000000)
        at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
        at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:302)
        ... 19 more
我搜索了有关解决
SSLHandshakeException:Handshake失败的解决方案,但我认为在web中没有合适的解决方案。(我在StackOverflow中尝试了几乎所有的答案,等等)

在阅读关于HTTP()的书时,我发现在
握手过程中会发生以下事情

  • 交换协议版本号
  • 选择密码套件
  • 验证服务器/客户端
  • 由于异常消息只显示
    握手失败
    ,我不知道该怎么做才能修复它。所以我想知道我的应用程序到底出了什么问题


    我可以获得更详细的异常消息吗?

    您需要为HttpUrlConnection启用完整日志级别,并尝试调试SSL。为什么它在几种情况下只显示一条消息——安全性。罪犯不应该知道错误的细节。但作为开发人员,您应该了解所有信息。所以试着调试SSL连接。发生的事情远不止这些。大师级机密生成,会话恢复,…@AntonGolovin谢谢我会try@EJP我发现
    握手失败
    发生在
    客户端hello
    之后,并且在
    客户端hello
    的使用Wireshark的密码套件列表中没有可用于服务器套件的密码套件。因此,我将
    HttpsURLConnection.setsslssocketfactory()
    与自定义
    SSLSocketFactory
    (我添加了服务器可以使用
    setEnabledCipherSuites()
    使用的密码套件),但异常消息显示不支持添加的密码套件。你能给我一些建议吗?@约书亚,很抱歉,来晚了。在我的例子中,出现异常是因为android 5.0不支持服务器的密码套件。()我添加了服务器手动支持的密码套件。(请在中检查密码套件)