我想从代码中使用rest api。现在,为此,我可以使用WebClient或HttpClient。
但是,HttpClient具有连接池支持,如文档中所述。
每个HttpClient实例都使用自己的连接池,隔离它 来自其他HttpClient实例执行的请求的请求
那么,WebClient
是否有连接池支持?
因为我将多次调用此api,因此它不希望"为每个呼叫创建新连接"在api呼叫期间是性能的开销。
我应该使用哪一个,以获得更好的性能?
答案 0 :(得分:0)
我正在寻找这个。并发现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