WebClient查询耗时太长,原因是

本文关键字:查询 WebClient | 更新日期: 2023-09-27 17:58:45

这是我的C#代码。

WebClient client = new WebClient();
while (true) {
   html = client.DownloadString("http://google.com");
   Console.WriteLine(string.Format("'tSize: {0}", html.Length));
}

大约需要9秒才能得到第一个结果。然后每个大约需要3秒。

当我用Java做这件事时,它只需要不到1秒的时间。

你觉得C#为什么这么慢?我该如何改进?

WebClient查询耗时太长,原因是

我注意到第一个请求使用WebClient或WebRequest总是需要很长时间。。。我用我构建的SocketHttp类执行同样的请求,而且不需要花费时间。

但在第一次请求后,它应该会更快,很好。

找到问题的修复程序

尝试显式设置代理。如果没有定义代理,HttpRequest类将花费时间搜索代理。一旦它找到了(或没有找到),它就会在应用程序的整个生命周期中使用这些信息,从而加快后续请求的速度。

设置request.Proxy = null;

您的网络可能有问题(如Mark注释所示)。