如何跨多个请求重用 HTTP 连接?

sti*_*til 5 c# http fiddler dotnet-httpclient

我正在制作一个应用程序,它不断扫描远程网站以进行任何更改。我正在使用System.Net.Http.HttpClient,但我注意到它可能不支持重用连接。

请求一个接一个地执行,但通常需要大约 250 毫秒才能完成。当我在“重用服务器连接”选项打开的情况下打开 Fiddler 时,它会下降到每个请求 150 毫秒。

我想我配置错误HttpClient,但我在 MSDN 参考中找不到任何可以帮助我解决问题的信息。

Eri*_*Law 1

对于 HttpWebRequest,您需要设置KeepAlive 属性

HttpClient 似乎没有提供类似的属性,但它可能会尝试默认使用 keepalive。请求头和响应头是什么?(HTTP/1.0 仅在服务器显式发送Connection: Keep-alive响应标头时才支持 keepalive。

连接保持活动状态不适用于某些主机上的 System.Net.Http.HttpClient可能与之相关。