我正在使用下面的代码将 header 发送到我指定的站点,该站点在HTTP协议(protocol)(端口= 80)下可以正常工作,但现在我尝试使用HTTPS(端口= 443)发送到 header 。

        mytcpclient = new TcpClient();
        mytcpclient.Connect(host, port);

        mysocket = mytcpclient.Client;
        SendHeader(mysocket);

    public void SendHeader(Socket mySocket)
    {
        String sBuffer = "";
        sBuffer = sBuffer + "GET /"+pathquery+" HTTP/1.1" + "\r\n";
        sBuffer = sBuffer + "Host: "+ hostname + "\r\n";
        sBuffer = sBuffer + "Content-Type: text/html\r\n";
        sBuffer = sBuffer + "\r\n";
        Byte[] bSendData = Encoding.ASCII.GetBytes(sBuffer);
        mySocket.Send(Encoding.ASCII.GetBytes(sBuffer), Encoding.ASCII.GetBytes(sBuffer).Length, 0);
    }

我知道有SSLStream类,但是我不确定如何重写代码,因此它使用SSL将 header 正确发送到站点。

最佳答案

使用Webclient类而不是TcpClient。它是为http ...制作的,例如参见http://www.dotnetperls.com/webclient

10-06 05:27