在C#中,使用WebClient類時,可以通過設(shè)置HttpClientHandler的Timeout屬性來為WebClient操作設(shè)置超時時間。以下是一個示例:
using System;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// 創(chuàng)建一個HttpClientHandler實例
var handler = new HttpClientHandler();
// 設(shè)置連接超時時間(單位:毫秒)
handler.ConnectTimeout = 5000;
// 設(shè)置讀取超時時間(單位:毫秒)
handler.ReadTimeout = 5000;
// 使用自定義的HttpClientHandler創(chuàng)建HttpClient實例
using (var httpClient = new HttpClient(handler))
{
try
{
// 發(fā)起GET請求
var response = await httpClient.GetAsync("https://www.example.com");
// 讀取響應(yīng)內(nèi)容
var content = await response.Content.ReadAsStringAsync();
// 輸出響應(yīng)內(nèi)容
Console.WriteLine(content);
}
catch (HttpRequestException e)
{
// 處理請求異常
Console.WriteLine("Request error: " + e.Message);
}
}
}
}
在這個示例中,我們創(chuàng)建了一個HttpClientHandler實例,并分別設(shè)置了連接超時時間和讀取超時時間。然后,我們使用這個handler創(chuàng)建了一個HttpClient實例,并發(fā)起了一個GET請求。如果請求在指定的超時時間內(nèi)未完成,將會拋出HttpRequestException異常。