3.22设置超时时间

创建于 2026 年 8 月 17 日约 1 分钟读完

为单次请求设置超时时长。

cs
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 实现:

cs
// 限制整个流程(含重试)总耗时不得超过 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);