我正在使用下面的代码将 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