gpt4 book ai didi

c# - 为每组端点使用静态 HttpClient 与不同的 HTTPClient

转载 作者:行者123 更新时间:2023-11-30 17:30:03 29 4
gpt4 key购买 nike

所以我的应用涉及大量网络调用(可能连接到 10 个不同的服务器)和获取数据。从我读过的几篇文章中,建议重用 HTTPClient 实例,因为它可以防止资源(套接字等)的浪费。但是我发现围绕可扩展且健壮的静态 HTTPClient 设计模块有点困难。我所有的服务器连接都需要不同的 header 集、查询参数等。每个服务器/端点模型使用一个 HTTPClient 会更好吗?

最佳答案

如果为每个服务器创建一个 HttpClient 实例会更容易。

您可以创建一个单例类,作为静态 httpClient 的包装器,并使用您的依赖注入(inject)机制传递它们:

public class ServerAClient {
private HttpClient _client;
private static object _locker = new object();

public static HttpClient GetInstance() {
if (_client == null) {
lock (_locker) {
// create your httpclient here
_client = instance;
}
}

return _client;
}
}

public class MyController : Controller {
private readonly ServerAClient _aclient;
public MyController(ServerAClient Aclient) {
_aclient = Aclient;
}

public IHttpAction Index() {
...
_aclient.DoSomething();
}
}

关于c# - 为每组端点使用静态 HttpClient 与不同的 HTTPClient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50434666/

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