C# ssl请求耗时超长
原来一直用HttpWebRequest来请求网页,截取数据,现在用SslStream来操作https,但发现在很多问题,耗时特别高,原来就几秒的未时,现在要几十秒,代码还有什么问题呢?
TcpClient tcp = new TcpClient();
try
{
tcp.Connect(Host, Port);
if (tcp.Connected)
{
using (SslStream ssl = new SslStream(tcp.GetStream(), false, new RemoteCertificateValidationCallback(MyFunction.ValidateServerCertificate), null))
{
ssl.AuthenticateAsClient("ServerName", new X509CertificateCollection(), SslProtocols.Tls, false);
if (ssl.IsAuthenticated)
{
ssl.Write(bteSend);
ssl.Flush();
while(true)
{
if (!HeaderText.Contains("\r\n\r\n"))
{
intLen = ssl.Read(headerRc,0,1);
HeaderText += GetEncoding.GetString(headerRc, 0, 1);
}
else
{
intLen = ssl.Read(bteReceive, 0, bteReceive.Length);
ms.Write(bteReceive, 0, intLen);//写入流中
}
if (intLen <= 0) break;
}
}
Console.WriteLine(ms.Length);
ms.Seek(0, SeekOrigin.Begin);
}
}
tcp.Close();
}
catch { }