.NET HttpWebRequest 速度与浏览器

2023-11-24

我有一个关于 .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 等待重定向时预先附加了“/”等)。我已经在 .NET HTTP 客户端上构建了巨大的应用程序,但没有像您所描述的那样 - 一定还有其他事情发生。

如果在 URL 末尾添加“/”会发生什么?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.NET HttpWebRequest 速度与浏览器 的相关文章

随机推荐

  • PHP DOMDocument 将节点从一个文档移动到另一个文档

    好吧 我已经尝试了几个小时来实现这一目标 但似乎找不到解决方案 所以我在这里 我有 2 个 DOMDocument 我想将一个文档的节点移动到另一个文档 我知道两个文档的结构 并且它们属于同一类型 所以合并它们应该没有问题 有人可以帮助我吗
  • Androidmanifest 和 build.gradle 中都有 minsdk 和 Targetsdk 吗?

    我刚刚将一个项目从 Eclipse 迁移到 Android Studio 这build gradle文件有一个部分包括 defaultConfig applicationId com example someone myapplicatio
  • 在 Plotly Python 中更改子图标题位置/方向

    我需要在 python 中更改子图标题 即将其旋转 90 度 我努力尝试但没有成功 这是我的代码 import plotly offline as pyo import plotly graph objs as go from plotly
  • 在 Actionscript 3 中将一个函数传递给另一个函数

    我有一个函数将数组作为参数传递给另一个函数 该数组中会有多种数据类型 但我想知道如何传递函数或对函数的引用 以便另一个函数可以随时调用它 ex 功能A add new Array hello some function 功能B public
  • 这是单一责任原则的一个例子吗?

    我制作了以下代码示例来学习如何使用泛型方法签名 为了得到一个Display 方法对于客户和员工 我实际上开始更换我的IPerson接口与人抽象类 但后来我停了下来 想起鲍勃叔叔在播客中向斯科特 汉塞尔曼讲述了单一责任原则其中你应该有很多小类
  • 元素节点和文本节点的区别

  • C# 4.0 WCF REST JSON - HTTP GET 代码 400 错误请求

    当尝试创建一个简单的服务以通过遵循几个教程返回简单的 JSON 字符串时 我被困在两台不同的机器上 并收到 HTTP Statuscode 400 错误请求 示例教程 使用 JSON 的 RESTful WCF 服务 pt 1 和 pt 2
  • 使用 sed 在主机文件的行尾添加地址

    我的主机文件中有一个特定行用于本地 Wordpress Multisite 安装 如下所示 127 0 0 1 localhost domain dev site1 domain dev site2 domain dev 我正在编写一个 S
  • PHP 字母循环

    为什么这不起作用 请告诉我 您的代码中有两个问题 首先 单引号字符串 的行为与双引号字符串 当使用单引号字符串时 转义序列 除了 and 不被解释并且变量不被消耗 这可以这样修复 删除引号 或将它们更改为双引号 string hey for
  • 基于索引掩码 numpy 数组

    如何根据实际索引值屏蔽数组 也就是说 如果我有一个 10 x 10 x 30 矩阵 并且我想在第一个和第二个索引彼此相等时屏蔽该数组 例如 1 1 应该被屏蔽 因为 1 和 1 彼此相等 但是 1 2 不应该 因为他们不这样做 我只用三维来
  • iOS 11 Safari HTML - 禁用“智能标点符号”?

    有没有好的方法来禁用 SmartiOS 11 Apple 键盘生成的标点符号 在 Safari 中的 HTML 登录表单上 特别是用户名字段 问题是我们的用户名中含有撇号 在 iOS 11 上输入用户名并且不了解 unicode 的微妙之处
  • Android:ViewHolder 模式和不同类型的行?

    ViewHolder 模式提高了 ListView 滚动帧率 如以下示例所示 https developer android com resources samples ApiDemos src com example android ap
  • Cassandra:使用包含大于或小于(< 和 >)的 where 子句进行查询

    我正在使用 Cassandra 1 1 2 我正在尝试将 RDBMS 应用程序转换为 Cassandra 在我的 RDBMS 应用程序中 我有以下名为 table1 的表 Col1 Col2 Col3 Col4 Col1 字符串 主键 Co
  • python:如果超过特定文件大小,则输出到另一个文本文件

    我在 ubuntu 中使用 scapy 和 python 我想问是否有人知道如何编写示例 假设我有两个文本文件在脚本运行时正在写入 那么我想检查该文件是否超过示例 500 字节 如果超过 那么它将存储文件中的所有内容并创建一个新的文本文件来
  • 如何在 Google Chrome 中启动 JavaScript 调试器?

    使用 Google Chrome 时 我想调试一些 JavaScript 代码 我怎样才能做到这一点 尝试将其添加到您的源中 debugger 它适用于大多数 如果不是所有 浏览器 只需将它放在代码中的某个位置 它就会充当断点
  • C++ 中的 sizeof 运算符是如何实现的?

    有人可以向我指出 sizeof 运算符在 C 中的实现以及有关其实现的一些描述吗 sizeof 是不能重载的运算符之一 那么这意味着我们无法更改其默认行为 sizeof不是 C 中的真正运算符 它只是插入一个等于参数大小的常量的特殊语法 s
  • Python 中匹配非空白的正则表达式

    我想用研究提取第一组非空白字符 我有以下伪脚本来重现我的问题 usr bin env python2 7 import re line STARC 1 1 1 5 ConsCase WARNING Warning m re search S
  • C++,根据一个向量对另一个向量进行排序[重复]

    这个问题在这里已经有答案了 我得到的最好的例子是我想根据分数对名称进行排序 vector
  • R 缺少哪些其他语言有的调试工具? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我熟悉browser trace traceback and options error
  • .NET HttpWebRequest 速度与浏览器

    我有一个关于 Net HttpWebRequest 客户端 或 WebClient 给出类似结果 性能的问题 如果我使用 HttpWebRequest 请求 html 页面 在本例中为 news bbc co uk 并分析应用程序读取响应的