使用webrequest C#获取响应时间



我正试图连接到一个安全的网页以获得响应时间:然而,我一直收到这个错误

基础连接已关闭:发送时发生意外错误。-System.IO.IOException:无法从传输连接读取数据:远程主机强制关闭了现有连接。

这是代码

static void Main(string[]args){

string url = "some url"; 
ServicePointManager.ServerCertificateValidationCallback = 
    new RemoteCertificateValidationCallback((sender, certificate, chain, policyErrors) => { return true; });//requires that .NEt 4.5 be installed but not targeted
string fileName = "file ocation";//<--Example
WebClient WC = new WebClient();
DateTime currentDateTime = DateTime.Now;
string x = "";
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
StreamWriter writer = new StreamWriter(fileName, true);
try
{
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    Stopwatch timer = new Stopwatch();
    timer.Start();
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    timer.Stop();
    TimeSpan timeTaken = timer.Elapsed;
    writer.WriteLine(currentDateTime.ToString() + " - " + timeTaken.ToString());
    writer.Close();
}
catch (WebException ex)
{
    writer.WriteLine(currentDateTime.ToString() + " " + ex.Message + " - " + ex.InnerException.ToString(), true);
}

}

解决了它。我不明白为什么代码出错;然而自从我使用VS 2010以来,它只上升到了.net 4.0。因此,SecurityProtocol缺少枚举。一旦我为丢失的枚举强制转换整数,它就起到了的作用

ServicePointManager.SecurityProtocol=(SecurityProtocolType)48|(SecurityProtcolType)192|(SecurityProtocol)768|(SecurityProtocolType)3072;ServicePointManager.ServerCertificateValidationCallback=new RemoteCertificateValidationCallback((发送方、证书、链、策略错误)=>{return true;})//需要安装.NEt 4.5,但不是目标

最新更新