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;
}
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<AbpHttpClientBuilderOptions>(options =>
{
options.ConfiguredProxyClients.Add(remoteServiceConfigurationName);
});
return services;
}

4
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<string> ConfiguredProxyClients { get; }
public List<Action<string, IServiceProvider, HttpClient>> ProxyClientActions { get; }
public AbpHttpClientBuilderOptions()
{
ProxyClientBuildActions = new List<Action<string, IHttpClientBuilder>>();
ConfiguredProxyClients = new HashSet<string>();
ProxyClientActions = new List<Action<string, IServiceProvider, HttpClient>>();
}
}
}

Loading…
Cancel
Save