我希望切换我们的HttpClients使用Flurl。但是,我们的HttpClient当前配置为通过Steeltoe使用服务发现。基本上它是在ConfigureServices中这样做的:
services.AddHttpClient<IMyClass, MyClass>().AddHttpMessageHandler<DiscoveryHttpMessageHandler>();DiscoveryHttpMessageHandler是Steeltoe库(https://github.com/SteeltoeOSS)中的自定义http消息处理程序
如何使用Flurl访问IHttpClientBuilder,以便添加相同的消息处理程序?或者,Flurl有没有另一种简单的方法,可以为创建的每个HttpClient/FlurlClient添加一个自定义消息处理程序?
发布于 2021-03-09 22:22:12
有几种方法可以使用Flurl添加自定义消息处理程序(例如使用自定义factory),但由于您已经在使用IHttpClientFactory,我认为获得您想要的(也是我推荐的)最简单的方法是继续将HttpClient注入到您的服务中,并将它们与Flurl封装在服务中:
public class MyClass : IMyClass
{
private readonly IFlurlClient _flurlClient;
public MyService(HttpClient httpClient) {
_flurlClient = new FlurlClient(httpClient);
}
}https://stackoverflow.com/questions/66534558
复制相似问题