Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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/2/jsf-2/2.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
SSLSocketFactory.createSocket使用http而不是https进行连接_Http_Https_Handshake - Fatal编程技术网

SSLSocketFactory.createSocket使用http而不是https进行连接

SSLSocketFactory.createSocket使用http而不是https进行连接,http,https,handshake,Http,Https,Handshake,我需要握手。我用下面的代码来做 我在一个小程序中运行代码,当直接在服务器上运行时,它可以正常工作。当相同的代码通过代理运行时,就会出现我遇到的问题。 我正在java控制台中查看跟踪级别5是否已激活。直接在代码行SSLSocket socket=SSLSocket factory.createsockettww.theserver.com之后,443;被处决 这一行出现在java控制台网络中:connectingwithproxy=DIRECT。在此之后,小程序停止工作。我想是因为 代理将不允许端

我需要握手。我用下面的代码来做

我在一个小程序中运行代码,当直接在服务器上运行时,它可以正常工作。当相同的代码通过代理运行时,就会出现我遇到的问题。 我正在java控制台中查看跟踪级别5是否已激活。直接在代码行SSLSocket socket=SSLSocket factory.createsockettww.theserver.com之后,443;被处决 这一行出现在java控制台网络中:connectingwithproxy=DIRECT。在此之后,小程序停止工作。我想是因为 代理将不允许端口443上的http通信

有人能告诉我为什么它使用http连接,我应该怎么做才能让它使用https连接吗

import javax.net.ssl.HandshakeCompletedEvent; 
import javax.net.ssl.HandshakeCompletedListener; 
import javax.net.ssl.SSLSocket; 
import javax.net.ssl.SSLSocketFactory; 

public class Handshake 
{ 

    class MyHandshakeListener implements HandshakeCompletedListener 
    { 

        public void handshakeCompleted(HandshakeCompletedEvent e) 
        { 
            System.out.println("Handshake succesful!"); 
            System.out.println("Using cipher suite: " + e.getCipherSuite()); 
        } 
    } 

    public void DoHandshake() 
    { 
        try 
        { 
            SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault(); 
            SSLSocket socket = (SSLSocket) factory.createSocket("www.theserver.com", 443); 
            String[] suites = socket.getSupportedCipherSuites(); 
            socket.setEnabledCipherSuites(suites); 
            socket.addHandshakeCompletedListener(new MyHandshakeListener()); 
            socket.startHandshake(); 
        } 
        catch (Exception e) 
        { 
            System.out.println(e); 
        } 

    } 
} 

我知道这有点晚了,但我们遇到了完全相同的问题,并且刚刚能够解决它。问题出在客户机上,在Java控制面板的“高级”选项卡上检查了使用SSL 2.0兼容的ClientHello格式。在客户端上取消选中此框,它将正确连接。

我想我正在寻找相同的答案。