2013-02-05 29 views
1

這是我以前的問題的延續:Download file in chunks是否可以使用WebClient定義WebException類型?

現在,我有一個工作的應用程序,允許下載和播放大型媒體文件。但是,仍然存在問題。正如我注意到的,如果下載時間超過五分鐘,則由於超時而導致連接關閉。這不是問題,因爲應用程序可以輕鬆地重新打開它,發送另一個請求,e.t.c.

現在,這是一個問題:可能有幾種類型的錯誤與響應,但我不能劃分「超時過期」異常(如果我抓住了這個,我使用的方法,這將繼續下載)從其他例外來看,這是真正由錯誤引起的。它們都具有WebException類型。我也試過this article的解決方案,但是ex.Status 的值是「未知錯誤」(!)。消息值也相同「遠程服務器返回錯誤:NotFound。」

所以,我的問題很簡單:如何定義錯誤是由超時引起的?

回答

1

可能的解決辦法:

類型引發WebException可以這樣定義:

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

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

所以,在我的情況下,HttpStatusCode將是 「禁止」(錯誤403)。使用這個信息我可以創建未來的邏輯。

相關問題