HttpClient如何注入时配置 基础地址、Token
提问
HttpClient如何注入时配置 基础地址、Token
回答
services.AddHttpClient<GenericScadaClient>()
.ConfigureHttpClient(client =>
{
var configuration = //TODO:获取配置
if (configuration is not null)
{
client.BaseAddress = //TODO:BaseAddress
client.Timeout = //TODO: 超时
}
var loginHelper = provider.GetService<LoginHelper>();
if (loginHelper is not null)
{
var token = //TODO: 超token
client.DefaultRequestHeaders.Add("Authorization", token);
}
}).AddTransientHttpErrorPolicy(builder =>
{
return builder.Or<TaskCanceledException>()
.Or<OperationCanceledException>()
.Or<SystemException>()
.OrResult(res =>
res.StatusCode == System.Net.HttpStatusCode.TooManyRequests || (int)res.StatusCode >= 500)
.RetryAsync(2);
});