我正在尝试构建一个从网站发送和接收响应的应用程序。
我在 Stack Overflow 上阅读的所有解决方案都没有解决我的问题,所以我认为我的代码可以使用优化。
我有以下线程:
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();
}
使用上面的代码,我在 10 秒内只收到大约 12 个响应。当我尝试在 JavaScript 中或使用简单的 IFrame 发出相同的请求时,它的速度是原来的两倍多。浏览器不使用多个线程进行连接,它会等待一个线程完成,然后启动新的线程。
我尝试了设置request.Proxy = null;
,但它的影响可以忽略不计。
我注意到它比 .HTTPS
慢 2-3 倍HTTP
。不幸的是,我必须使用HTTPS
. 我能做些什么来让它更快吗?