C# WebClient acting slow the first time
I am using a WebClient to download a string from a website (which just contains plain text, nothing else), so I use the DownloadString method:
WebClient wc = new WebClient();
string str = wc.DownloadString("http://blah");
It works fine, but the problem is that the first time it downloads the string it takes a l开发者_如何学JAVAong time, like 5 seconds. After that it works fast. Why does this happen and how can overcome this problem?
Setting the Proxy
property of your WebClient
object to null should eliminate the delays you're seeing. Alternatively if you've configured your system to use a proxy it can be retrieved with WebRequest.GetSystemWebProxy
. The second method should eliminate the delay in either case.
I noticed the same thing. DotTrace shows it's spending the majority of its time enumerating proxy options:
Well, the first time it needs to do a DNS lookup and connect to the host - after that, within the same process it may well be reusing the same connection. For the very first request to anywhere, it may well also be trying to detect proxy settings etc.
If you want to see what's really happening at the network level to make it slow, I suggest you grab Wireshark and monitor the traffic with that.
精彩评论