栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

重试HttpClient不成功的请求

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

重试HttpClient不成功的请求

代替实施包裹该重试功能的

HttpClient
,可以考虑构成
HttpClient
HttpMessageHandler
内部执行所述重试逻辑。例如:

public class RetryHandler : DelegatingHandler{    // Strongly consider limiting the number of retries - "retry forever" is    // probably not the most user friendly way you could respond to "the    // network cable got pulled out."    private const int MaxRetries = 3;    public RetryHandler(HttpMessageHandler innerHandler)        : base(innerHandler)    { }    protected override async Task<HttpResponseMessage> SendAsync(        HttpRequestMessage request,        CancellationToken cancellationToken)    {        HttpResponseMessage response = null;        for (int i = 0; i < MaxRetries; i++)        { response = await base.SendAsync(request, cancellationToken); if (response.IsSuccessStatusCode) {     return response; }        }        return response;    }}public class BusinessLogic{    public void FetchSomeThingsSynchronously()    {        // ...        // Consider abstracting this construction to a factory or IoC container        using (var client = new HttpClient(new RetryHandler(new HttpClientHandler())))        { myResult = client.PostAsync(yourUri, yourHttpContent).Result;        }        // ...    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/416871.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号