1

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

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

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

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

4

1 回答 1

1

可能的解决方案:

WebException 的类型可以这样定义:

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

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

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

于 2013-02-06T08:12:17.770 回答