除非DefaultWebProxy被清空,否则WebRequest.GetResponse需要很长时间

时间:2011-09-12 15:28:32

标签: c# proxy httpwebrequest

我正在使用Windows 7 Ultimate x64。

我首先进行了浏览并找到了this,我在这里得到了问题的'解决方案',但想知道为什么 - 我不想在以下情况下使DefaultWebProxy无效有一个合法的代理应该使用。 (顺便说一句,我 在http代理后面)

这是一个简单的单元测试,可以解决这个问题。

[Test]
    public void TestWebRequest()
    {
        //if I dont include the following line the request takes ~40 seconds.
        WebRequest.DefaultWebProxy = null;

        var httpRequest = WebRequest.Create("http://google.com");                        

        var stopWatch = new Stopwatch();
        stopWatch.Start();
        using (var webResponse = httpRequest.GetResponse())//this is the line taking ages.
        {
            using (var sr = new StreamReader(webResponse.GetResponseStream()))
                Trace.WriteLine(sr.ReadToEnd());
        }
        stopWatch.Stop();
        Trace.WriteLine(string.Format("took {0} sec", stopWatch.Elapsed.TotalSeconds));
    }

我们可以不要因为IDisposable原因而陷入困境。

1 个答案:

答案 0 :(得分:1)

我已经看过这个并且需要一些发现来解决。

在我的情况下,发生的事情是有人在“Internet连接选项”中的“代理”字段中输入了“”(空格),然后打开使用代理。

这很奇怪,因为它只会导致代理的第一次启动时出现长时间的延迟,如果你回到互联网设置,它就不会显示那里有空间。