如何在重试请求时调用X-HttpMessageHandlers?
需求与实现:重试请求时执行X-HttpMessageHandlers
核心需求
我希望在重试请求时执行X-HttpMessageHandlers。
现有实现配置
已添加HttpClient,其请求由LoggingHandler和Polly重试策略处理,配置代码如下:
using Microsoft.Extensions.Http.Polly; builder.Services.AddHttpClient() .AddHttpMessageHandler<LoggingHandler>() .AddPolicyHandler(GetRetryPolicy());
重试策略示例
以下是简化后的重试策略实现:
public static IAsyncPolicy<HttpResponseMessage> GetRetryPolicy() { // HandleTransientHttpError:处理HttpRequestException、 // Http状态码≥500(服务器错误) // 以及状态码408(请求超时) return HttpPolicyExtensions .HandleTransientHttpError() .RetryAsync(3); // 最多重试请求3次 }
测试方式
可以向返回503状态码的测试地址发送请求,该地址会返回502网关错误(属于服务器错误范畴),会触发上述重试策略。
参考资料
- Polly官方扩展文档
- HttpBin测试服务
内容的提问来源于stack exchange,提问作者GråSkärm
相关产品推荐
相关产品推荐

