在我的 c# 控制台应用程序(.net 4.6.1)中,我需要对随机端点进行 API 调用(Get/Post/Put/delete)等。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://docs.microsoft.com/en-us/aspnet/core/fundamentals/http-requests?view=aspnetcore-2.1
我用对了吗?我应该使用“使用(httpClient)”吗