是否需要关闭HttpWebRequest?怎么样

时间:2016-05-13 01:50:02

标签: c# .net httpwebrequest

我有一个小程序,可以将一些数据(4MB)发布到远程服务器。每次内部4MB缓冲区已满时,我会创建一个新的HttpWebRequest,调用BeginGetRequestStream / EndGetRequestStream,将数据写入流,关闭并完成。因为我不关心回复,所以我没有打电话给GetResponse / BeginGetResponse / EndGetResponse

我的问题是,由于HttpWebRequest没有Close方法,将当前的HttpWebRequest实例放在后面是否安全?如果我没有对HttpWebRequest做任何事情,连接会自动关闭吗?如果答案为否,如何显式关闭当前的HTTP连接?感谢。

1 个答案:

答案 0 :(得分:1)

您不必清理HttpWebRequest,但需要关闭来自GetRequestStream的流或来自GetResponse的回复。我知道你说你没有使用任何响应方法,但你必须使用其中一个来实际提出请求。

  

完成WebResponse对象后,必须通过调用Close方法将其关闭。或者,如果您已从响应对象获得响应流,则可以通过调用Stream.Close方法来关闭该流。如果不关闭响应或流,则应用程序可能会耗尽与服务器的连接,并且无法处理其他请求。[1]

[1] https://msdn.microsoft.com/en-us/library/debx8sh9.aspx