这是我上一个问题的延续:Download file in chunks
现在,我有一个工作应用程序,允许下载和播放大型媒体文件。但是,还有一个问题。正如我所注意到的,如果下载时间超过五分钟,则由于超时而关闭连接。这不是问题,因为应用程序可以轻松地重新打开它,发送另一个请求,e.t.c。
现在,这是一个问题:响应可能有几种类型的错误,但是我不能将“超时过期”异常(如果我抓住这个异常,我使用的方法,将继续下载)其他例外,实际上是由错误引起的。它们都有WebException类型。我也尝试了this article的解决方案,但ex.Status
值是“未知错误”(!)。消息值也相等“远程服务器返回错误:NotFound。”
所以,我的问题很简单:如何定义错误是由超时引起的?
答案 0 :(得分:1)
可能的解决方案:
可以通过以下方式定义WebException的类型:
catch (WebException ex)
{
HttpWebResponse response = (HttpWebResponse)ex.Response;
if (response.StatusCode == HttpStatusCode.someCode)
DoSomething();
}
因此,在我的情况下,HttpStatusCode将被“禁止”(错误403)。使用此信息,我可以创建未来的逻辑。