小编M. *_*Mis的帖子

创建 IHttpClientFactory 时如何将参数发送到 services.AddHttpClient 是 Startup.cs?

我正在尝试设置一个 IHttpClientFactory,我想知道如何在创建时向它发送参数,这些参数我需要分配给重试策略。

我正在使用 .Net Core 2.2 和 Microsoft.Extensions.Http.Polly,我已经阅读了这篇文章https://docs.microsoft.com/en-us/aspnet/core/fundamentals/http-requests?view=aspnetcore -2.2

我有这是 Startup.cs

services.AddHttpClient("MyClient", c =>
{
    c.BaseAddress = new Uri("http://interface.net");
    c.DefaultRequestHeaders.Add("Accept", "application/json");
})
.AddTransientHttpErrorPolicy(p => p.WaitAndRetryAsync(3, _ => TimeSpan.FromMilliseconds(600)));
Run Code Online (Sandbox Code Playgroud)

我是这样用的

private readonly IHttpClientFactory _iHttpClientFactory;

public ValuesController(IHttpClientFactory iHttpClientFactory)
{
    _iHttpClientFactory = iHttpClientFactory;
}

public async Task<ActionResult<string>> Get()
{
    var client = _iHttpClientFactory.CreateClient("MyClient");
    var response = await client.GetAsync("/Service?Id=123");
    response.EnsureSuccessStatusCode();
    var result = await response.Content.ReadAsStringAsync();
    return result;
}

Run Code Online (Sandbox Code Playgroud)

我想知道在执行 CreateClient 时是否有一种方法可以发送参数,以便在 AddTransientHttpErrorPolicy 中分配给 retryCount 和 sleepDuration,在这种情况下分别为 3 和 600,因为我需要创建具有不同 retryCounts 和 sleepDurations 的客户端和这些值可以改变。 …

c# dotnet-httpclient polly asp.net-core

0
推荐指数
1
解决办法
4288
查看次数

标签 统计

asp.net-core ×1

c# ×1

dotnet-httpclient ×1

polly ×1