Browse Source

Add ProxyClientActions & fix ConfiguredProxyClients problem.

pull/6112/head
maliming 6 years ago
parent
commit
4a4a2d0327
  1. 13
      framework/src/Volo.Abp.Http.Client/Microsoft/Extensions/DependencyInjection/ServiceCollectionDynamicHttpClientProxyExtensions.cs
  2. 4
      framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/AbpHttpClientBuilderOptions.cs

13
framework/src/Volo.Abp.Http.Client/Microsoft/Extensions/DependencyInjection/ServiceCollectionDynamicHttpClientProxyExtensions.cs

@ -156,14 +156,23 @@ namespace Microsoft.Extensions.DependencyInjection
return services; 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) foreach (var clientBuildAction in preOptions.ProxyClientBuildActions)
{ {
clientBuildAction(remoteServiceConfigurationName, clientBuilder); clientBuildAction(remoteServiceConfigurationName, clientBuilder);
} }
preOptions.ConfiguredProxyClients.Add(remoteServiceConfigurationName); services.PreConfigure<AbpHttpClientBuilderOptions>(options =>
{
options.ConfiguredProxyClients.Add(remoteServiceConfigurationName);
});
return services; return services;
} }

4
framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/AbpHttpClientBuilderOptions.cs

@ -1,5 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Net.Http;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
namespace Volo.Abp.Http.Client namespace Volo.Abp.Http.Client
@ -10,10 +11,13 @@ namespace Volo.Abp.Http.Client
internal HashSet<string> ConfiguredProxyClients { get; } internal HashSet<string> ConfiguredProxyClients { get; }
public List<Action<string, IServiceProvider, HttpClient>> ProxyClientActions { get; }
public AbpHttpClientBuilderOptions() public AbpHttpClientBuilderOptions()
{ {
ProxyClientBuildActions = new List<Action<string, IHttpClientBuilder>>(); ProxyClientBuildActions = new List<Action<string, IHttpClientBuilder>>();
ConfiguredProxyClients = new HashSet<string>(); ConfiguredProxyClients = new HashSet<string>();
ProxyClientActions = new List<Action<string, IServiceProvider, HttpClient>>();
} }
} }
} }

Loading…
Cancel
Save