spe*_*der 3 c# stream httpwebrequest httpwebresponse abort
我从HttpWebRequest(使用修改后的版本Jeff Richter的CCR包装器)获得响应,然后检查一些标头以决定是否继续下载.有时我可能不想继续,所以我因此发出response.Close和request.Abort.是否有必要发出GetResponseStream然后关闭流,或者当调用response.Close时这是隐式的吗?
发出GetResponse后,文档说明:
您必须调用Close方法来关闭流并释放连接.如果不这样做可能会导致您的应用程序用完连接.
那么这是否意味着一旦我们得到响应,那么获取流并关闭它是必须的吗?
我们看到一些相当奇怪的问题,其中挂起的下载最终会淹没系统.这似乎是资源泄漏的最强候选者,但想知道是否有其他人有这个问题的经验.
顺便说一句:GetResponseStream是否安全,假设它是同一个流?
调用HttpWebResponse.Close implicity会关闭响应流.
从文档:
Close方法关闭响应流并释放与资源的连接以供其他请求重用
您必须调用Stream.Close或HttpWebResponse.Close方法来关闭流并释放连接以便重用.没有必要同时调用Stream.Close和HttpWebResponse.Close,但这样做不会导致错误.无法关闭流可能会导致应用程序用完连接.
对于你的双GetResponseStream问题,尽管文档没有明确提及它,但无论你调用它多少次,它总是会返回相同的流对象.
归档时间: |
|
查看次数: |
5931 次 |
最近记录: |