c# - .NET HttpWebRequest 速度与浏览器

标签 c# .net httpwebrequest performance

我对 .Net HttpWebRequest 客户端(或 WebClient,给出类似结果)的性能有疑问。

如果我使用 HttpWebRequest 请求 html 页面(在本例中为 news.bbc.co.uk)并分析应用程序读取响应的速度(使用 HttpAnalyzer),这比浏览器慢得多( Firefox、Chrome、IE)请求相同的资源(清除所有缓存等)。 .Net 应用程序大约需要 1.7 秒,而浏览器需要 0.2 - 0.3 秒。

这纯粹取决于代码/应用程序的速度和效率,还是有任何其他因素需要考虑?

代码如下:

HttpWebRequest request = null;

Uri uriTest = new Uri("http://news.bbc.co.uk");

request = (HttpWebRequest)WebRequest.Create(uriTest);

request.Method = "GET";
request.KeepAlive = true;
request.Headers["Accept-Encoding"] = "gzip, deflate";

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

response.Close();

最佳答案

我会插孔 Fiddler在中间,一个接一个地运行浏览器请求和 .NET 请求,并确保您真正得到您的想法。可能存在重定向或其他不正常的事情(可能浏览器正在预先附加“/”,而 .NET 等待 redir 等),这些不会立即可见。我在 .NET HTTP 客户端上构建了巨大的应用程序,但没有像您描述的那样 - 一定有其他事情在发生。

如果您在 URL 末尾添加“/”会怎样?

关于c# - .NET HttpWebRequest 速度与浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2048408/

相关文章:

c# - 编程结构的发音(尤其是C#)

c# - 在 Windows XP 中快速检测固定 IDE 驱动器的移除

IOS - 重新建立连接时对要发送的请求进行排队的最佳方式

c# - 未调用覆盖的虚函数

c# - 如何在包含不同签名但参数全部对应于同一类型的类型上构造接口(interface)

c# - 如何删除 OWIN 中的中间件?

silverlight - 如何在 Silverlight( F#) 中创建异步 HttpWebRequest

c# - 强制 HttpWebRequest 发送客户端证书

c# - 系统类型;隐式转换为字符串

c# - 我在哪里可以下载 PEVerify.exe 工具?