WebClient.DownloadString takes about 15 seconds wh

2019-02-23 01:05发布

问题:

string url = "http://google.com/index.html";
WebClient client = new WebClient();
Stopwatch sw = new Stopwatch();
sw.Start();
string text = client.DownloadString(url);
sw.Stop();
Console.WriteLine(sw.Elapsed);

Stopwatch says DownloadString method takes 13-15 seconds when first called, but repeated calls take sensible amounts of time. How does this happen and how do I fix it?

回答1:

There may be a couple of things that would cause a delay on the first call such as detecting proxy settings. Try setting the proxy to null:

client.Proxy = null;


回答2:

Your machine is configured to perform Automatic Proxy Detection.

You can disable it here:

Alternatively, you can manually override the proxy to be used by the WebClient; null means no proxy:

client.Proxy = null;

However, you should offer the user to configure a proxy in your application in this case, because some users have to use a proxy when accessing the Web.



标签: c# webclient