握手在棒棒糖上失败

我正在尝试进行HTTP POST,但我得到两个不同的错误:

javax.net.ssl.SSLHandshakeException: Handshake failed net.ssl.SSLPeerUnverifiedException: No peer certificate 

我通过此处指定的解决方法修复了无对等证书错误: https : //stackoverflow.com/a/4837230/4254419

但是虽然它修复了错误,但它会抛出一个新错误,这就是握手失败

我知道这不安全而且我不在乎,它不适合生产,所以我更不关心安全性。 这个问题有解决方法吗?

我有同样的问题。 我找到了一个链接https://code.google.com/p/android/issues/detail?id=88313 ,在那里我找到了一个代码:

 public class MySSLSocketFactory extends SSLSocketFactory { SSLContext sslContext = SSLContext.getInstance("TLS"); ... @Override public Socket createSocket(Socket socket, String host, int port, boolean autoClose) throws IOException, UnknownHostException { final SSLSocket sslSocket = (SSLSocket) sslContext.getSocketFactory().createSocket(socket, host, port, autoClose); sslSocket.setEnabledCipherSuites(sslSocket.getSupportedCipherSuites()); return sslSocket; } @Override public Socket createSocket() throws IOException { final SSLSocket sslSocket = (SSLSocket) sslContext.getSocketFactory().createSocket(); sslSocket.setEnabledCipherSuites(sslSocket.getSupportedCipherSuites()); return sslSocket; } } 

您可以从您提供的链接中使用MySSLSocketFactory代码,但您需要覆盖两个方法createSocket ,如上所述。 此外,它不是最佳解决方案,您可以在以后遇到一些安全问题,因为对于连接,它可以使用一些旧的密码算法。

希望这可以帮助。