2009-08-02 700 views
10

我很惊讶地看到HttpWebRequest已经没有密切的方法,但是它的对应部分HttpWebResponse了。这让我有点困惑和不方便。 :-)HttpWebRequest有没有关闭的方法?

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

+1

(我删除了重复并且在额外的内容中合并) – 2009-08-02 09:03:29

+0

你问**再次**(现在删除)?不要那样做... – 2009-08-02 19:55:11

回答

29

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

一个请求自己完全没有。它不会打开一个套接字或其他东西。它只是保存一些数据,如果你不需要它,你可以忽略它并丢弃它(它是一个纯粹的托管资源,垃圾收集器将负责它)。在调用其中一个GetResponse方法后,会发生实际情况。

1

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

4

一个比喻:

如果我想和你谈谈,我已经知道我要对你说我可以简单的叫你的名字(要求)。然而,由你来决定何时,如何以及向我回答什么(Response)。所以你会对我的沟通有更多的控制权,我只是开始了。