我使用 HttpWebResponse.BeginGetResponse() 方法向我的服务器发出请求。在“请求完成”通知中,我执行以下操作(不包含错误处理代码):
HttpWebResponse response = (HttpWebResponse)myHttpWebRequest.EndGetResponse(result);
BinaryReader streamReader = new BinaryReader(response.GetResponseStream());
while ((readSize = streamReader.Read(buffer, 0, buffer.Length)) > 0)
{
...
}
我的问题是是否可以将从 response.GetResponseStream() 获得的 Stream 存储为成员变量,并像这样取消请求:
m_requestState.httpRequest.Abort();
m_requestState.httpRequestStream.Close(); // If this is missing then
// streamReader.Read() locks for a long time when connection is lost.
此代码导致 streamReader.Read() 引发 System.ObjectDisposedException。
谢谢!
米海