You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Polly为HttpClient配置401错误与TransientHttpError共同重试策略

实现方案

原有代码调用的HttpPolicyExtensions.HandleTransientHttpError()是Polly预置的便捷策略方法,默认仅覆盖三类错误场景:

  • HttpRequestException请求异常
  • 5xx服务端错误状态码
  • 408请求超时状态码

要新增对401未授权错误的重试触发,只需要在原有策略基础上追加401状态码的匹配规则即可,修改后的代码如下:

services.AddHttpClient(Options.DefaultName)
            .ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler { })
            .AddPolicyHandler(HttpPolicyExtensions.HandleTransientHttpError()
                // 新增匹配401未授权状态码
                .OrResult(response => response.StatusCode == System.Net.HttpStatusCode.Unauthorized)
                .WaitAndRetryAsync(2, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt))));

注意:如果你的业务中401错误由访问令牌过期导致,不建议直接使用上述无逻辑重试,可在重试回调中增加令牌刷新逻辑,确保重试请求携带有效凭证,减少无效请求。

内容的提问来源于stack exchange,提问作者user584018

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 23:18:02