HttpWebRequest有没有close方法?

时间:2009-08-02 09:00:27

标签: c# .net .net-3.5

我很惊讶地看到HttpWebRequest没有关闭方法,但它的反对部分HttpWebResponse有。这让我有点困惑和不方便。 : - )

那么,我们只需要在响应时调用Close,而不需要处理请求?我担心的是泄漏和更好的资源使用效率。我使用的是VSTS2008 + C#+ .Net 3.5。

3 个答案:

答案 0 :(得分:34)

是的,你只需要在响应对象上调用它。

请求本身绝对没有任何意义。它不会打开套接字或其他东西。它只保存一些数据,您可以忽略它并在不需要它时抛弃它(它是一个纯托管资源,垃圾收集器会处理它)。在调用其中一个GetResponse方法后,会发生实际的事情。

答案 1 :(得分:4)

类比:

如果我想和你谈谈,我已经确定我想跟你说话,我只会叫你的名字(要求)。但是,由您来决定何时,如何以及如何回答我(回复)。所以你对我的沟通有了比我更多的控制权,我刚刚开始了。

答案 2 :(得分:0)

您在HttpWebResponse上引用的close方法用于将完成的响应发送到Web服务器。在HttpWebRequest对象上,当您开始处理时,所有内容都可用,因此无需关闭服务器并与服务器通信。