WebClient是否具有HTTP连接池?如果没有,HttpClient有吗



我想从代码中使用一个rest api。现在,为此,我可以使用WebClient或HttpClient。

但是,HttpClient支持连接池,如文档中所述。

每个HttpClient实例都使用自己的连接池,隔离其来自其他HttpClient实例执行的请求的请求

那么,WebClient是否支持连接池?

由于我将多次调用此api,因此它不希望"为每次调用创建新连接"成为api调用期间性能的开销。

那么,为了获得更好的性能,我应该使用哪一个呢?

我围绕这个进行了搜索。发现了一些更新的信息HttpClient确实有连接池。

TLDR:

var socketHandler = new SocketsHttpHandler()
{
AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate,
PooledConnectionLifetime = TimeSpan.FromMinutes(10),
PooledConnectionIdleTimeout = TimeSpan.FromMinutes(5),
MaxConnectionsPerServer = 10
};
var httpClient = new HttpClient(socketHandler);

您可以在此处阅读更多信息:https://www.stevejgordon.co.uk/httpclient-connection-pooling-in-dotnet-core

相关内容

  • 没有找到相关文章

最新更新