我很惊讶地看到HttpWebRequest
没有关闭方法,但它的反对部分HttpWebResponse
有。这让我有点困惑和不方便。 : - )
那么,我们只需要在响应时调用Close,而不需要处理请求?我担心的是泄漏和更好的资源使用效率。我使用的是VSTS2008 + C#+ .Net 3.5。
答案 0 :(得分:34)
是的,你只需要在响应对象上调用它。
请求本身绝对没有任何意义。它不会打开套接字或其他东西。它只保存一些数据,您可以忽略它并在不需要它时抛弃它(它是一个纯托管资源,垃圾收集器会处理它)。在调用其中一个GetResponse
方法后,会发生实际的事情。
答案 1 :(得分:4)
类比:
如果我想和你谈谈,我已经确定我想跟你说话,我只会叫你的名字(要求)。但是,由您来决定何时,如何以及如何回答我(回复)。所以你对我的沟通有了比我更多的控制权,我刚刚开始了。
答案 2 :(得分:0)
您在HttpWebResponse上引用的close方法用于将完成的响应发送到Web服务器。在HttpWebRequest对象上,当您开始处理时,所有内容都可用,因此无需关闭服务器并与服务器通信。