From 4a4a2d0327ea8d562c486039bf932dfd3709dbb9 Mon Sep 17 00:00:00 2001 From: maliming Date: Sun, 8 Nov 2020 22:12:07 +0800 Subject: [PATCH] Add ProxyClientActions & fix ConfiguredProxyClients problem. --- ...iceCollectionDynamicHttpClientProxyExtensions.cs | 13 +++++++++++-- .../Abp/Http/Client/AbpHttpClientBuilderOptions.cs | 4 ++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.Http.Client/Microsoft/Extensions/DependencyInjection/ServiceCollectionDynamicHttpClientProxyExtensions.cs b/framework/src/Volo.Abp.Http.Client/Microsoft/Extensions/DependencyInjection/ServiceCollectionDynamicHttpClientProxyExtensions.cs index aabcb98fc1..84b58d6ee0 100644 --- a/framework/src/Volo.Abp.Http.Client/Microsoft/Extensions/DependencyInjection/ServiceCollectionDynamicHttpClientProxyExtensions.cs +++ b/framework/src/Volo.Abp.Http.Client/Microsoft/Extensions/DependencyInjection/ServiceCollectionDynamicHttpClientProxyExtensions.cs @@ -156,14 +156,23 @@ namespace Microsoft.Extensions.DependencyInjection return services; } - var clientBuilder = services.AddHttpClient(remoteServiceConfigurationName); + var clientBuilder = services.AddHttpClient(remoteServiceConfigurationName, (provider, client) => + { + foreach (var clientBuildAction in preOptions.ProxyClientActions) + { + clientBuildAction(remoteServiceConfigurationName, provider, client); + } + }); foreach (var clientBuildAction in preOptions.ProxyClientBuildActions) { clientBuildAction(remoteServiceConfigurationName, clientBuilder); } - preOptions.ConfiguredProxyClients.Add(remoteServiceConfigurationName); + services.PreConfigure(options => + { + options.ConfiguredProxyClients.Add(remoteServiceConfigurationName); + }); return services; } diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/AbpHttpClientBuilderOptions.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/AbpHttpClientBuilderOptions.cs index 7f11a6be12..84ecc47014 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/AbpHttpClientBuilderOptions.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/AbpHttpClientBuilderOptions.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Net.Http; using Microsoft.Extensions.DependencyInjection; namespace Volo.Abp.Http.Client @@ -10,10 +11,13 @@ namespace Volo.Abp.Http.Client internal HashSet ConfiguredProxyClients { get; } + public List> ProxyClientActions { get; } + public AbpHttpClientBuilderOptions() { ProxyClientBuildActions = new List>(); ConfiguredProxyClients = new HashSet(); + ProxyClientActions = new List>(); } } }