我正在使用WebClient从网站下载字符串(只包含纯文本,没有别的),所以我使用DownloadString方法:
WebClient wc = new WebClient();
string str = wc.DownloadString("http://blah");
它工作正常,但问题是它第一次下载字符串需要很长时间,比如5秒。之后它运作得很快。为什么会发生这种情况?如何解决这个问题?
答案 0 :(得分:22)
将Proxy
对象的WebClient
属性设置为null可以消除您看到的延迟。或者,如果您已将系统配置为使用代理,则可以使用WebRequest.GetSystemWebProxy
检索它。第二种方法应该消除任何一种情况下的延迟。
答案 1 :(得分:6)
答案 2 :(得分:3)
嗯,第一次需要进行DNS查找并连接到主机 - 之后,在同一个进程中,它可能会重用相同的连接。对于任何地方的第一个请求,它可能也试图检测代理设置等。
如果你想看到网络层面发生了什么事情让它变慢,我建议你抓住Wireshark并用它来监控流量。