【问题标题】:Abort request wp7中止请求 wp7
【发布时间】:2011-08-15 23:05:53
【问题描述】:

如果我中止请求,我有一个 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();
    //    }

【问题讨论】:

    标签: c# silverlight windows-phone-7 httpwebrequest system.net.webexception


    【解决方案1】:
    try
    {
        HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);//WebException if aborted
    }
    catch(WebException e)
    {
      if(e.Status == WebExceptionStatus.RequestCanceled)
        {
          //WORK
        }
    }
    

    来自文档:

    Abort 方法取消对资源的请求。取消请求后,调用BeginGetResponseEndGetResponseBeginGetRequestStreamEndGetRequestStream 方法会导致WebExceptionStatus 属性设置为RequestCanceled

    来源:http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.abort(v=VS.95)

    【讨论】:

      【解决方案2】:

      您应该将 EndGetResponse 包装在 try-catch 块中。如果 Web 请求被中止,您将面临意外的流程,因此异常是处理此问题的最佳方式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-09
        • 2012-10-08
        • 1970-01-01
        • 2019-08-20
        相关资源
        最近更新 更多