Отменить запрос wp7 - PullRequest
       35

Отменить запрос wp7

2 голосов
/ 16 августа 2011

Если я отменяю запрос, у меня возникает исключение WebException. Как я могу проверить, отменен ли запрос?

// if (asynchronousResult.AsyncState !="Aborted" ) {
            HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);//WebException if aborted
            Stream streamResponse = response.GetResponseStream();
            StreamReader streamRead = new StreamReader(streamResponse);
            do_after(streamRead.ReadToEnd());
            streamResponse.Close();
            streamRead.Close();
            response.Close();
    //    }

Ответы [ 2 ]

4 голосов
/ 16 августа 2011
try
{
    HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);//WebException if aborted
}
catch(WebException e)
{
  if(e.Status == WebExceptionStatus.RequestCanceled)
    {
      //WORK
    }
}

Из документации:

Метод Abort отменяет запрос к ресурсу.После отмены запроса вызов метода BeginGetResponse, EndGetResponse, BeginGetRequestStream или EndGetRequestStream вызывает WebException со свойством Status, установленным на RequestCanceled.

Источник:http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.abort(v=VS.95)

1 голос
/ 16 августа 2011

Вы должны заключить EndGetResponse в блок try-catch. Если веб-запрос прерывается, вы сталкиваетесь с неожиданным потоком, поэтому исключения - лучший способ справиться с этим.

...