HttpClient如何注入时配置 基础地址、Token

发布时间 2023-08-24 17:15:50作者: 喜爱糖葫芦

提问

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);
            });