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

在 .NET 中使用 HttpClient 设置请求超时时间,主要是通过设置 Timeout 属性来实现。这个属性控制整个请求从发送到接收到响应的最长时间,超过该时间会抛出 TaskCanceledException 异常。
HttpClient 的 Timeout 属性类型为 TimeSpan,默认值是 100 秒。你可以根据需要自定义这个时间。
示例如下:
var httpClient = new HttpClient(); httpClient.Timeout = TimeSpan.FromSeconds(30); // 设置超时为30秒
如果请求在 30 秒内未完成,就会触发超时异常,需在调用 GetAsync、PostAsync 等方法时进行异常处理。
当请求超时时,.NET 会抛出 TaskCanceledException。注意:这个异常也可能是由于取消令牌(CancellationToken)触发的,因此建议检查是否是因超时引起。
捕获异常的示例:
try
{
var response = await httpClient.GetAsync("https://api.example.com/data");
response.EnsureSuccessStatusCode();
}
catch (TaskCanceledException)
{
// 判断是否是超时导致
if (!cancellationToken.IsCancellationRequested)
{
// 是超时,不是手动取消
Console.WriteLine("请求超时");
}
}
频繁创建 HttpClient 实例可能导致端口耗尽等问题。推荐使用 IHttpClientFactory 或将其声明为静态实例。
使用 IHttpClientFactory 配置超时(在 Startup.cs 或 Program.cs 中):
services.AddHttpClient("timeoutClient", client =>
{
client.Timeout = TimeSpan.FromSeconds(20);
});
然后通过依赖注入获取客户端使用。
基本上就这些。设置超时很简单,关键是合理配置时间并正确处理异常。以上就是.NET如何使用HttpClient设置请求超时时间的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号