问题标签 [httpwebrequest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
410 浏览

httpwebrequest - 更重要的是,尽可能少的 http 请求或拆分文件以便于开发?

很多时候在互联网上阅读有关 Web 开发的信息时,我听说您应该将 javascript 和 css 文件拆分为多个文件。
就像将您的 css 文件拆分为:

  • 清除.css
  • base.css
  • page_specific.css

或者您甚至应该将它们拆分为包含定位、颜色和排版信息的文件。

但是浏览器不是只能同时发出两个http请求吗?将文件拆分成这么多文件会产生大量的 http 请求。将它们分成两个文件,一个特定于页面的文件和一个基本/清除 css 文件不是更好吗?然后将它们与大量缓存头一起发送?

我知道拆分文件更容易开发,但速度不应该更重要吗?

0 投票
6 回答
25587 浏览

c# - 提高 .NET 中多线程 HttpWebRequest 的性能

我正在尝试测量 Web 服务的吞吐量。

为了做到这一点,我编写了一个小工具,它可以连续发送请求并从多个线程读取响应。

每个线程的内部循环的内容如下所示:

它似乎工作正常,除了似乎限制了该工具的某些东西。如果我以每 40 个线程运行该工具的两个实例,我获得的吞吐量比一个具有 80 个线程的实例要高得多。

我找到了 ServicePointManager.DefaultConnectionLimit 属性,我将其设置为 10000 (如果我按照 Jader Dias 的建议通过 app.config 设置它没有区别)。

.NET 或我的机器上是否有任何其他设置会影响性能?(我正在运行 Vista,但我在 Windows Server 2003 上看到了同样的问题)。

也许对单个进程可以建立多少个连接有一些限制?

0 投票
3 回答
697 浏览

c# - 是否可以根据收到的 cookie 理解成功登录?

在开发 C# 应用程序(我的第一个 C# 应用程序)时:

  • 从用户(id,pass)获取登录信息,
  • 打开HttpWebRequest到 ASP.NET 网页的新连接
  • 尝试使用获得的 [id,pass] 元组登录到此页面。如果登录成功,我的HttpWebRequest对象包含一个 cookie,它将用于登录另一个页面。

在请求第二个(受保护的)页面之前,我想确保第一次登录成功。首先,我认为只有在登录成功的情况下,服务器才会发送一个 cookie。但事实并非如此。:)

是否可以从收到的 cookie 对象中了解我的登录成功?或者您可以为我提出其他解决此问题的方法吗?

0 投票
3 回答
6325 浏览

asp.net - 使用 .NET 的 HttpWebRequest 了解 SSL 连接

我似乎无法理解这一点。我正在使用 HttpWebRequest 尝试将一些数据发送到另一个站点。我试图找出配置防火墙的最佳方法,但我不知所措。通过查看 NetMon 跟踪,它似乎忽略了我告诉它的内容。我看到的 HTTP 标头从请求中发出(不是浏览器到我的服务器请求,而是我的服务器到远程服务器请求)不加起来。

TCP DstPort 似乎也总是以 HTTP(80) 开头。无论如何,我最初似乎无法让它处理 443;SSL 在开始“真正”传输之前是否以端口 80 协商开始?启动时,此请求似乎忽略了我在启动请求之前尝试设置的任何 HttpWebRequest 设置:即使我将 HTTP 1.0 或 keep-alive 设置为 false,它仍然以上述标头开始。

它在做什么?我想知道如何让它通过,但我不确定它为什么会表现出这种行为?

下面的代码,如果它有帮助。

我已经搜索过 Google 和其他 SSL/HttpWebRequest 问题,但找不到灵丹妙药。

0 投票
2 回答
8222 浏览

c# - 有没有办法在.NET中继承一个没有构造函数的类?

我目前正在尝试修改一些 HttpWebRequest 函数,但我无法通过继承来完成,因为 HttpWebRequest 没有公共构造函数(除了反序列化构造函数)。有解决方法吗?

我的目标是编写类似于下面示例的代码,但此类对象必须继承 HttpWebRequest 属性和方法:

0 投票
2 回答
150 浏览

proxy - 如何从http请求中判断客户端的唯一性?

我注意到,当客户端通过代理服务器发出 http 请求时,请求的 IP 地址始终是代理的 IP 地址。因此,如果来自具有代理服务器的大公司的许多客户访问网站,我无法判断这些请求是否来自独特的客户。如果http请求是通过代理,有什么方法可以确定客户端的唯一性?我知道mac地址不包含在http请求中,所以我几乎排除了这一点。

0 投票
4 回答
4360 浏览

c# - 如何再次请求中止的 HttpWebRequest?

我的目标是在异步 HttpWebRequest 失败时重试它。

当我Abort()一个 HttpWebRequest 时,我不能再次 BeginGetResponse()。所以再次请求的唯一方法可能是重新创建 HttpWebRequest 对象。这似乎需要做很多工作,因为我必须从旧对象中复制所有属性。有什么捷径吗?

注意:我认为序列化可以解决我的问题,但是这个类不会序列化,如上一个问题中所述。

更新删除了示例源代码,因为它是不必要的

目前对此事的看法没有捷径,重做请求的唯一方法是创建另一个 HttpWebRequest 对象,就像您创建原始对象一样。

0 投票
1 回答
7043 浏览

c# - 使用 POST 的 HttpWebRequest 的性能

我有一个用于测试网络服务的小工具。

它可以使用 POST 或使用 GET 调用 web 服务。

使用 POST 的代码是

使用 GET 的代码是:

如您所见,代码非常相似。如果有的话,我希望 GET 方法会稍微慢一些,因为它必须在 Base64 中编码和传输数据。

但是当我运行它时,我发现 POST 方法比 GET 方法使用了更多的处理能力。在我的机器上,我可以使用大约 5% 的 CPU 运行 GET 方法的 80 个线程,而 POST 方法的 80 个线程使用 95% 的 CPU。

使用 POST 有什么本质上更昂贵的东西吗?我可以做些什么来优化 POST 方法吗?我无法重用连接,因为我想模拟来自不同客户端的请求。

dotTrace 报告说,在使用 POST 时,65% 的处理时间花费在 webRequest.GetResponse() 中。

如果这有任何区别,则底层 Web 服务将使用 Digest-Authentication。

0 投票
6 回答
56142 浏览

batch-file - 来自批处理文件的 http Web 请求

我需要从 Plesk 的 Task Scheduler 执行一个 http web 请求(使用 Windows/ASP.NET 上的共享主机;无论如何都没有 Powershell)。考虑过为此使用批处理文件。

是否有捷径可寻?

0 投票
1 回答
1650 浏览

c# - 清除 HttpWebRequest UnsafeAuthenticatedConnectionSharing 池

是否可以清除当前进程的 UnsafeAuthenticatedConnectionSharing 池,即关闭所有经过身份验证的池连接?