.NET如何使用HttpClient设置请求超时时间

.net 中通过设置 HttpClient 的 Timeout 属性配置请求超时时间,默认为 100 秒,可自定义为 TimeSpan 值,如 30 秒;超时会抛出 TaskCanceledException,需结合 CancellationToken 判断是否为超时异常;推荐使用 IHttpClientFactory 或静态实例避免资源耗尽,并在依赖注入中统一配置超时以提升可靠性。

.NET如何使用HttpClient设置请求超时时间

在 .NET 中使用 HttpClient 设置请求超时时间,主要是通过设置 Timeout 属性来实现。这个属性控制整个请求从发送到接收到响应的最长时间,超过该时间会抛出 TaskCanceledException 异常。

设置 HttpClient 超时时间

HttpClient 的 Timeout 属性类型为 TimeSpan,默认值是 100 秒。你可以根据需要自定义这个时间。

示例如下:

 var httpClient = new HttpClient(); httpClient.Timeout = TimeSpan.FromSeconds(30); // 设置超时为30秒 

如果请求在 30 秒内未完成,就会触发超时异常,需在调用 GetAsyncPostAsync 等方法时进行异常处理。

处理超时异常

当请求超时时,.NET 会抛出 TaskCanceledException。注意:这个异常也可能是由于取消令牌(CancellationToken)触发的,因此建议检查是否是因超时引起。

.NET如何使用HttpClient设置请求超时时间

ViiTor实时翻译

ai实时多语言翻译专家!强大的语音识别、AR翻译功能。

.NET如何使用HttpClient设置请求超时时间116

查看详情 .NET如何使用HttpClient设置请求超时时间

捕获异常的示例:

 try  {     var response = await httpClient.GetAsync("https://api.example.com/data");     response.EnsureSuccessStatusCode(); } catch (TaskCanceledException)  {     // 判断是否是超时导致     if (!cancellationToken.IsCancellationRequested)     {         // 是超时,不是手动取消         Console.WriteLine("请求超时");     } } 

避免重复创建 HttpClient

频繁创建 HttpClient 实例可能导致端口耗尽等问题。推荐使用 IHttpClientFactory 或将其声明为静态实例。

使用 IHttpClientFactory 配置超时(在 Startup.cs 或 Program.cs 中):

 services.AddHttpClient("timeoutClient", client => {     client.Timeout = TimeSpan.FromSeconds(20); }); 

然后通过依赖注入获取客户端使用。

基本上就这些。设置超时很简单,关键是合理配置时间并正确处理异常。

上一篇
下一篇
text=ZqhQzanResources