3.22设置超时时间
创建于 2026 年 8 月 17 日约 1 分钟读完
为单次请求设置超时时长。
HttpRequestBuilder.Get("https://furion.net/") .SetTimeout(TimeSpan.FromSeconds(2));HttpRequestBuilder.Get("https://furion.net/") .SetTimeout(2000); // 毫秒单位HttpRequestBuilder.Get("https://furion.net/") .SetTimeout(-1); // 永不超时,或使用 .WithoutTimeout(),或设置为 System.Threading.Timeout.InfiniteTimeSpanHttpRequestBuilder.Get("https://furion.net/") .SetTimeout(0); // 立即取消请求HttpRequestBuilder.Get("https://furion.net/") .SetTimeout(TimeSpan.FromSeconds(2), () => // 支持超时回调 { // 超时发生时要执行的操作 });HttpRequestBuilder.Get("https://furion.net/") .SetTimeout(2000, () => // 支持超时回调 { // 超时发生时要执行的操作 });HttpRequestBuilder.Get("https://furion.net/") .SetTimeout(new HttpTimeoutOptions()); // 自定义超时选项HttpRequestBuilder.Get("https://furion.net/") .SetTimeout(options => options.SetTimeout(2000)); // 自定义超时选项若需限制包含重试和等待时间在内的最大总耗时,请通过外部 CancellationTokenSource 实现:
// 限制整个流程(含重试)总耗时不得超过 2 秒using var timeoutCancellationToken = new CancellationTokenSource(TimeSpan.FromSeconds(2));var builder = HttpRequestBuilder.Get("https://furion.net/") .SetTimeout(500) // 单次请求超时 500ms .SetRetry(5, TimeSpan.FromSeconds(1)); // 允许重试 5 次,每次间隔 1 秒// 传入全局 Token,达到 2 秒时立即终止整个流程var response = await httpRemoteService.SendAsync(builder, timeoutCancellationToken.Token);