【发布时间】:2021-10-30 15:20:58
【问题描述】:
当我们遇到来自 HttpRequestException、5XX 和 408 的错误时,以下代码重试 2 次,它工作正常。
这里我想重试甚至401 错误?我们如何通过 Polly 实现这一目标?
services.AddHttpClient(Options.DefaultName)
.ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler { })
.AddPolicyHandler(HttpPolicyExtensions.HandleTransientHttpError()
.WaitAndRetryAsync(2, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt))));
【问题讨论】:
-
您选择
.ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler { })的原因是什么?不手动指定不是已经默认了吗? -
如果收到
Unauthorized,为什么要重试相同的请求?发出相同的请求通常不会给您新的凭据。还是我错过了什么? -
我们将在 401 情况下再次执行 ReAuthorize。
-
@user584018 确切地说,每当您遇到 401 时,您都希望执行特定操作,而不是发出相同的请求。这就是为什么我不明白为什么要将 401 包含到您的通用重试逻辑中。
标签: c# asp.net-core polly