【问题标题】:HttpWebRequest has no close method?HttpWebRequest 没有关闭方法?
【发布时间】:2010-11-16 03:37:36
【问题描述】:

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

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

【问题讨论】:

  • (我删除了重复并合并到额外的内容中)
  • 再次询问(现已删除)?请不要那样做...

标签: c# .net .net-3.5


【解决方案1】:

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

请求本身绝对不会做任何事情。它不会打开套接字或其他东西。它只是保存一些数据,如果你不需要它,你可以忽略它并把它扔掉(它是一个纯托管资源,垃圾收集器会处理它)。在调用 GetResponse 方法之一之后会发生实际情况。

【讨论】:

  • 嗨,是否有任何 MS 文档或其他“官方”地方解释 HttpWebRequest/Response 的内部工作原理?
  • @tamberg 你可以获取源代码并自己阅读:referencesource.microsoft.com/netframework.aspx
  • 实际上似乎不起作用。至少对于 SSL 连接,似乎不会将关闭发送到服务器。
【解决方案2】:

类比:

如果我想和你说话并且我已经确定我想和你说话,我会简单地叫你的名字(请求)。但是,由您决定何时、如何以及向我回复什么(回复)。所以你会比我更能控制沟通,我刚开始。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-07
      • 1970-01-01
      • 2019-10-30
      相关资源
      最近更新 更多