正确修复了第一次请求时HttpWebRequest GetResponse延迟

本文关键字:HttpWebRequest GetResponse 延迟 请求 第一次 | 更新日期: 2023-09-27 18:04:15

如前所述为什么这个WebRequest代码慢?这里是64位Windows上的HttpWebRequest GetResponse延迟

由于代理自动检测,HttpWebRequest在第一个请求时挂起。一个解决方案是设置Proxy = null,但这也锁定了所有使用代理的用户,并且sway 不是一个合适的解决方案。那么,有没有人知道如何在不锁定所有代理用户的情况下以编程方式固定这个初始延迟?

正确修复了第一次请求时HttpWebRequest GetResponse延迟

您可以先尝试/catch调用,将代理设置为null,并在失败的情况下设置代理自动检测。

我从ASP调用Elasticsearch时遇到过类似的问题。. NET (c#)在http://localhost:9200使用GetResponse和GetRequestStream发出第一个请求时,有20秒的延迟。

我的问题的原因是在IPv6。我的情况下的解决方案是评论为本地主机的IPv6地址的定义:

进入"C:'Windows'system32'drivers'etc'"文件夹

备份"hosts"文件

编辑文件更改行:

::1 localhost

#::1 localhost

也可以修改line:

#127.0.0.1 localhost

127.0.0.1 localhost

也许你可以刷新DNS缓存:以管理员身份启动命令提示符,在命令窗口键入然后按enter:ipconfig/flushdns

在此之前,我尝试了许多我在网上找到的解决方案,但没有一个对我的情况有帮助,例如:

  1. 请求。
  2. ServicePointManager。UseNagleAlgorithm = false
  3. 网页的各种变化。配置…

一种方法是要求用户关闭Internet explorer选项中的代理自动检测。

帮助我的是在Internet explorer局域网设置中关闭"自动检测设置"。没有其他工作,包括代码重写使用HttpClient而不是HttpWebRequest。