这个问题几乎可以解释。我想知道打开Http请求的所有后果,例如:
正确关闭将在using语句中。一个不好的例子可能是:
var myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url.ToString());
WebResponse myWebResponse = myHttpWebRequest.GetResponse();
Stream receiveStream = myWebResponse.GetResponseStream();
var readStream = new StreamReader(receiveStream, readEncoding);
response = readStream.ReadToEnd();
//if an error occurs, the close statements will not be executed!!!
readStream.Close();
myWebResponse.Close();
谢谢!
答案 0 :(得分:0)
可能没什么。你必须设计一个非常奇怪的情况才能使这种特殊的失态产生负面影响。但是,如果你把一个场景放在一起,我可以想到两个潜在的后果:
真的,那只是一个开始;我想到了什么。把玩具放在一边总是最好的。
答案 1 :(得分:0)
最糟糕的情况是,如果所有请求都没有关闭而失败,并且您创建了很多请求,那么您的客户端将耗尽ephemeral ports(用于传出请求的端口)并且根本无法连接到任何服务器,跨所有流程。这很糟糕。
显然,服务器也可能耗尽资源,但不会耗尽端口。通常,端口在任何其他资源(客户端和服务器)之前消失,但这完全取决于每个请求做什么。没有通用的,一刀切的答案。
真正的问题是:当你知道错误时,为什么你的第一直觉是不修复这个代码,而不是问它可能会制造什么可怕的东西?如果这段代码遇到麻烦,请相信我,你没有注意到这个。