設定 WebClient.DownloadFile() 逾時
使用 WebClient.DownloadFile()
下載遠端檔案可能會很慢,尤其是無法存取的檔案。 超時機制對於避免無限期等待至關重要。
實作:
實作逾時最有效的方法是建立一個繼承自WebRequest
的自訂類別。這允許直接在底層請求上設定 Timeout
屬性。 這是一個例子:
<code class="language-csharp">using System; using System.Net; public class TimedWebClient : WebClient { public int TimeoutMilliseconds { get; set; } public TimedWebClient() : this(60000) { } // Default 60-second timeout public TimedWebClient(int timeoutMilliseconds) { TimeoutMilliseconds = timeoutMilliseconds; } protected override WebRequest GetWebRequest(Uri address) { WebRequest request = base.GetWebRequest(address); if (request != null) { request.Timeout = TimeoutMilliseconds; } return request; } }</code>
這個 TimedWebClient
類別的功能與標準 WebClient
類似,但增加了可設定的逾時。 將其用作直接替代品,以毫秒為單位指定超時。 這可確保所有下載嘗試均遵守定義的逾時,從而防止不可用檔案出現長時間延遲。
以上是如何使用 WebClient.DownloadFile() 實作逾時?的詳細內容。更多資訊請關注PHP中文網其他相關文章!