C# 为什么我';我在HttpWebResponse.GetResponse方法的每四次调用中都会超时?

C# 为什么我';我在HttpWebResponse.GetResponse方法的每四次调用中都会超时?,c#,asp.net,httpwebresponse,C#,Asp.net,Httpwebresponse,为什么每次调用HttpWebResponse.GetResponse方法都会超时?不管我怎么称呼它。我试着每30秒呼叫一次,2分钟-没有区别-第四次呼叫总是超时 WebRequest request = WebRequest.Create(url); request.Timeout = 15000; HttpWebResponse response = null; try { response = (Htt

为什么每次调用HttpWebResponse.GetResponse方法都会超时?不管我怎么称呼它。我试着每30秒呼叫一次,2分钟-没有区别-第四次呼叫总是超时

 WebRequest request = WebRequest.Create(url);
        request.Timeout = 15000;
        HttpWebResponse response = null;
        try
        {
            response = (HttpWebResponse)request.GetResponse();
        }
        catch (WebException e)
        {
            using (WebResponse resp = e.Response)
            {
                Console.WriteLine(((HttpWebResponse)resp).StatusCode + ((HttpWebResponse)resp).StatusDescription);

            }
        }
     }

(i) WebException.Response不能保证为非null,所以您应该对此加以防范。(ii)所以你有一个回应。。。您应该获取其响应流并将其读到最后,然后处理它,然后处理响应本身(仅在上面的异常情况下执行此操作)。谢谢,添加response.dispose();在我阅读了响应之后,我完成了这个技巧。这就是
使用
语句的目的。另外,如果您有一个响应,那么在任何情况下都应该将响应流读到底。不管怎么说,数据都在向你的方向发展。