【问题标题】:DNS Lookups 1 / TCP Connects 1 while loop is 100 httpWebRequestDNS Lookups 1 / TCP Connects 1 while loop is 100 httpWebRequest
【发布时间】:2012-12-17 09:57:12
【问题描述】:

您好,我有一个 httpwebrequest(C# 可视化脚本),它正在访问一个 Url,并使用 http 嗅探器对其进行分析。我运行脚本 100 次,但只有 1 次 DNS 查找和 TCP 连接?

我试图让它连接的次数与我设置循环的次数一样多,我怎样才能做到这一点,我需要在标题部分进行更改吗??

提前谢谢。

(HttpWebRequest)WebRequest.Create("http://example.com");

                request.Method = "GET";
                request.ProtocolVersion = HttpVersion.Version10;
                request.Timeout = 10000;
                request.ReadWriteTimeout = 10000;

我没有收到错误,它确实运行了 100 次,但根据我的分析器,它只连接了 DNS 和 TCP 1 次。我想让它连接整个循环,这可能吗??

【问题讨论】:

  • 你的代码是什么,你试过什么?更具体。
  • (HttpWebRequest)WebRequest.Create("example.com"); request.Method = "GET"; request.ProtocolVersion = HttpVersion.Version10; request.Timeout = 10000; request.ReadWriteTimeout = 10000;
  • 更新你的问题,你的代码是什么?你得到什么错误?向人们提供更多信息。
  • 我是初学者,所以我不是专业人士:)
  • 写出好问题并不需要成为专业人士。阅读 Jon Skeet 的博文msmvps.com/blogs/jon_skeet/archive/2010/08/29/…

标签: c# tcp dns httpwebrequest


【解决方案1】:

出现此行为的原因是连接重用和 DNS 主机名缓存。为了查看重复的 DNS 请求,您必须为每个请求使用不同的主机,或者只是等待 DNS TTL(生存时间)超时,以便 DNS 缓存条目过期。 TCP连接更容易处理,因为如果你设置request.KeepAlive = false,每次都会发生。这应该会在请求完成后关闭连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-06
    • 1970-01-01
    • 2012-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多