首頁 >後端開發 >C++ >如何自訂 .NET WebClient 物件的逾時?

如何自訂 .NET WebClient 物件的逾時?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-13 13:16:43665瀏覽

How Can I Customize Timeouts for .NET WebClient Objects?

管理 .NET WebClient 物件中的超時

有效的逾時管理對於執行網路操作的強大 .NET 應用程式至關重要。 正確配置的逾時可以防止由於伺服器緩慢或無回應而導致應用程式掛起。 當與不可靠的網路服務互動時,這一點尤其重要。

此範例解決了使用 WebClient 類別從慢速伺服器下載資料時過早逾時的常見問題。 我們將展示如何延長超時時間。

自訂逾時實作

標準WebClient不直接支援無限超時。為了自訂超時行為,我們建立一個重寫 GetWebRequest 方法的衍生類別:

<code class="language-csharp">public class ExtendedWebClient : WebClient
{
    protected override WebRequest GetWebRequest(Uri uri)
    {
        WebRequest request = base.GetWebRequest(uri);
        request.Timeout = 20 * 60 * 1000; // Set timeout to 20 minutes
        return request;
    }
}</code>

利用擴充類別

使用這個ExtendedWebClient很簡單。實例化它並且像以前一樣使用 DownloadFile 方法:

<code class="language-csharp">ExtendedWebClient client = new ExtendedWebClient();
client.Encoding = Encoding.UTF8;
client.DownloadFile(downloadUrl, downloadFile);</code>

這種方法提供了受控的、可調整的超時,而無需訴諸無限期的等待。 這允許優雅地處理緩慢的網路回應,從而增強應用程式的穩定性。

以上是如何自訂 .NET WebClient 物件的逾時?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn