0

您好,我有一个 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 次。我想让它连接整个循环,这可能吗?

4

1 回答 1

1

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

于 2012-12-17T10:03:18.820 回答