gpt4 book ai didi

c# - .NET 6 在 Web API 项目 Controller 中使用 HTTP 客户端进行 API 调用

转载 作者:行者123 更新时间:2023-12-05 01:03:35 25 4
gpt4 key购买 nike

我还是 .NET 的新手,并且一直在使用 HttpClient 来调用我的 API Controller 中的其他 API。根据this article ,我应该只有一个 HttpClient 实例,因为它会导致套接字耗尽错误。

但是,我目前正在为每个 API Controller 创建一个 HttpClient。我应该创建一个 static 实用程序类,而不是包含单个 HttpClient 还是应该保留我所拥有的?使用本身调用其他 API 的 API Controller 时,是否有更好的替代方案或最佳实践?

如果需要更多信息,请告诉我。

最佳答案

推荐使用httpclient的方法是使用IHttpClientFactoryDependency Inject

使用 IHttpClientFactory 有几个好处,包括管理网络连接的生命周期。使用工厂创建客户端会重用连接池中的连接,从而不会创建太多套接字。连接被重用并自动处理以避免 DNS 级别问题。

通过使用 IHttpClientFactory,我们可以解决我们在直接实例化 HttpClient 实例时看到的所有初始问题。重构为Typed客户端消费模式后,也很好分离,更容易维护。它驱使我们编写更干净、松耦合的代码。

您可以阅读这两篇文章(12)了解更多信息。

关于c# - .NET 6 在 Web API 项目 Controller 中使用 HTTP 客户端进行 API 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74031633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com