Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.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 棒棒糖握手失败_Java_Android_Ssl_Apache Httpclient 4.x_Sslhandshakeexception - Fatal编程技术网

Java 棒棒糖握手失败

Java 棒棒糖握手失败,java,android,ssl,apache-httpclient-4.x,sslhandshakeexception,Java,Android,Ssl,Apache Httpclient 4.x,Sslhandshakeexception,我正在尝试执行HTTP POST,但遇到两个不同的错误: javax.net.ssl.SSLHandshakeException: Handshake failed net.ssl.SSLPeerUnverifiedException: No peer certificate 我通过此处指定的解决方法修复了无对等证书的错误: 但在修复错误的同时,它会抛出一个新错误,即握手失败 我知道这不安全,我不在乎,这不是为了生产,所以我不太在乎安全。这个问题有解决办法吗?我也有同样的问题。 我找到了一个链

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

javax.net.ssl.SSLHandshakeException: Handshake failed
net.ssl.SSLPeerUnverifiedException: No peer certificate
我通过此处指定的解决方法修复了无对等证书的错误:

但在修复错误的同时,它会抛出一个新错误,即握手失败

我知道这不安全,我不在乎,这不是为了生产,所以我不太在乎安全。这个问题有解决办法吗?

我也有同样的问题。 我找到了一个链接,在其中我找到了一个代码:

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;
        }
}
您可以从您提供的链接中使用
mysslssocketfactory
的代码,但您需要覆盖两种方法
createSocket
,正如我在上面所写的那样。 此外,这不是最好的解决方案,因为对于连接,它可以使用一些旧的密码算法,所以以后可能会出现一些安全问题

希望这有帮助