在我的 c# 控制台应用程序 (.net 4.6.1( 中,我需要对随机端点进行 API 调用(获取/发布/放置/删除(等。url、payload 等的详细信息来自数据库表。 控制台应用获取 httpClientFactory 实例,如下所示
var serviceProvider = new ServiceCollection().AddHttpClient().BuildServiceProvider();
var httpClientFactory = serviceProvider.GetService<IHttpClientFactory>();
对于我从表中获取的每条记录,我调用一个方法来进行 API 调用。对于该方法,我将httpClientFactory传递给了它。 在该方法中,我创建和使用HttpClient,如下所示。
var httpClient = httpClientFactory.CreateClient();
//set headers
//make api call, for ex var response = await httpClient.PutAsync(apiTask.URL, content);
//Return resposne
我不是在处理httpClient的地方。 当我看到内存使用量时,它会不断增加,即使在数小时后我也没有看到它下降。
我关注了以下文章 https://learn.microsoft.com/en-us/aspnet/core/fundamentals/http-requests?view=aspnetcore-2.1
我用得对吗?我应该使用"using(httpClient("吗?
无需为每个请求实例化新HttpClient
,您可以在所有请求之间共享一个实例,因为HttpClient
被设计为可重用且线程安全的。
检查这个,这个,还有这个,看看这个也是很糟糕
的