是否可以使用WebClient定义一种WebException?

时间:2013-02-05 05:53:02

标签: c# windows-phone-7 exception timeout webclient

这是我上一个问题的延续:Download file in chunks

现在,我有一个工作应用程序,允许下载和播放大型媒体文件。但是,还有一个问题。正如我所注意到的,如果下载时间超过五分钟,则由于超时而关闭连接。这不是问题,因为应用程序可以轻松地重新打开它,发送另一个请求,e.t.c。

现在,这是一个问题:响应可能有几种类型的错误,但是我不能将“超时过期”异常(如果我抓住这个异常,我使用的方法,将继续下载)其他例外,实际上是由错误引起的。它们都有WebException类型。我也尝试了this article的解决方案,但ex.Status 值是“未知错误”(!)。消息值也相等“远程服务器返回错误:NotFound。”

所以,我的问题很简单:如何定义错误是由超时引起的?

1 个答案:

答案 0 :(得分:1)

可能的解决方案:

可以通过以下方式定义WebException的类型:

 catch (WebException ex)
            {
              HttpWebResponse response = (HttpWebResponse)ex.Response;

              if (response.StatusCode == HttpStatusCode.someCode)
                    DoSomething();
            }

因此,在我的情况下,HttpStatusCode将被“禁止”(错误403)。使用此信息,我可以创建未来的逻辑。