如何提高HttpWebResponse对HTTPS请求的性能?

本文关键字:性能 请求 HTTPS 何提高 HttpWebResponse | 更新日期: 2023-09-27 17:49:58

我正在构建一个高度依赖网页加载速度的应用程序。

我没有得到任何好的结果与c#上的HttpWebResponse。我得到了更好的结果与互联网浏览器,如Chrome和IE

下面是我收集的统计信息:

HttpWebResponse (c#) = 17秒/20个请求

Javascript/iFrame on Chrome = 9 seconds/20 requests

Javascript/iFrame on IE = 11秒/20个请求

问题# 1 我能做些什么来优化我的代码以获得更好的性能?

问题# 2 我可以点击两次开始按钮并打开两个连接,这样我就可以获得与浏览器相同的性能。这个工作很棒,但是我发送请求的网站有一个限制。如果我在另一个请求完成之前发送一个新请求,它会阻止我的连接10分钟。有什么办法可以预防吗?

我的线程:

void DomainThreadNamecheapStart()
{
    while (stop == false)
    {
        foreach (string FromDomainList in DomainList.Lines)
        {
            if (FromDomainList.Length > 1)
            {
                // I removed my api parameters from the string
                string namecheapapi = "https://api.namecheap.com/foo" + FromDomainList + "bar";
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(namecheapapi);
                request.Proxy = null;
                request.ServicePoint.Expect100Continue = false;
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                StreamReader sr = new StreamReader(response.GetResponseStream());
                status.Text = FromDomainList + "'n" + sr.ReadToEnd();
                sr.Close();
            }
        }
    }
}

按钮:

private void button2_Click(object sender, EventArgs e)
{
    stop = false;
    Thread DomainThread = new Thread(new ThreadStart(DomainThreadNamecheapStart));
    DomainThread.Start();
}

我的老问题: 如何提高HttpWebResponse的性能?

如何提高HttpWebResponse对HTTPS请求的性能?

每次按下按钮时都创建一个线程。创建线程是昂贵的,并且需要时间。尝试使用现有线程池中的线程(试试QueueUserWorkItem),看看是否有帮助。