Skip to main content
 首页 » 编程设计

c#之WebClient 查询完成时间太长,为什么

2024年01月13日28mq0036

这是我的 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 或 WebRequest 时第一个请求总是需要很长时间... 我用我构建的 Socket-Http 类执行相同的请求,这不需要时间。

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

找到问题的解决方案

尝试明确设置代理。如果您没有定义代理,则 HttpRequest 类将花时间搜索代理。一旦它找到(或没有)找到一个,它将在应用程序的生命周期中使用该信息,从而加快后续请求。

设置request.Proxy = null;