Мы используем .net core 2.1 и используем httpclientfactory в нашем приложении.
Мы зарегистрировали службу с использованием services.AddTransient в startup.cs
При вызове первого API из кода все работаетхорошо.
Когда мы вызываем второй API, его выдача «Этот экземпляр уже запустил один или несколько запросов. Свойства могут быть изменены только перед отправкой первого запроса.»
Я получил ошибку при установке тайм-аута для _httpClient.
private readonly HttpClient _httpClient;
public ApiClient(IHttpClientFactory httpClientFactory)
{
_httpClient = httpClientFactory.CreateClient();
}
public async Task<IResponse> PutJsonAsync<IResponse, IRequest>(Uri uri, int? timeOut)
{
SetTimeout(timeOut);
var response = await _httpClient.PutAsync(uri, content).ConfigureAwait(false);
...
...
}
private void SetTimeout(int? timeOut)
{
if (timeOut.HasValue)
{
_httpClient.Timeout = new TimeSpan(0, 0, 0, timeOut.Value);
}
}
Требование заключается в том, что мне нужно установить таймаут для каждого API.
Как мы можем этого достичь?