当使用HttpClient从C#控制台应用程序进行测试时,如何判断我的HTTP连接是否被重用?
我正在发送正确的标题(根据Fiddler),但无论我是否发送Connection:keep-alive标题,时间都是相同的。
我很想知道它是否始终有效(即使没有标题)或总是不正在工作。
我设置的代码如下(我每次都重复使用相同的实例):
if (String.IsNullOrEmpty(client.DefaultRequestHeaders.Connection.ToString()))
{
client.DefaultRequestHeaders.Add("Connection", "keep-alive");
}
顺便说一句:我看不到直接设置此标题的简单方法 - 您只能添加()。这意味着如果你两次调用该方法,你最终会将“keep-alive,keep-alive”作为值!
答案 0 :(得分:0)
我发现最简单的方法是使用时序并明确禁用它以获取引用。只要远程服务器在其响应中发送正确的标头,.net版本的HttpClient似乎会自动重用默认连接。
但是,如果您明确将Connection标头设置为“close”,则远程服务器将关闭连接。执行此操作后,每个请求的所有时间都慢了200ms,证明keep-alive一直正常工作。