在HttpWebRequest上调用Abort对responseStream.BeginRead有任何影响

时间:2011-07-27 11:15:42

标签: c# .net

来自MSDN:

  

“Abort方法取消对资源的请求。请求后   取消,调用GetResponse,BeginGetResponse,EndGetResponse,   GetRequestStream,BeginGetRequestStream或EndGetRequestStream方法   导致将Status属性设置为的WebException   RequestCanceled“。

但如果responseStream.BeginRead正在进行中,Abort会取消此读取吗?

1 个答案:

答案 0 :(得分:1)

是的,它正在影响来自流的阅读。我测试了在msdn HttpWebRequest.Abort Method中使用的示例代码,并且调用EndReadReadCallBack函数中抛出异常。

RequestState myRequestState = (RequestState)asyncResult.AsyncState;
Stream responseStream = myRequestState.streamResponse;
int read = responseStream.EndRead(asyncResult);
  

提出了ReadCallBack异常!

     

消息:请求已中止:请求已取消。

     

状态:RequestCanceled按任意键继续..........