C# WebRequest类并将keepAlive设置为false

C# WebRequest类并将keepAlive设置为false,c#,webrequest,keep-alive,C#,Webrequest,Keep Alive,我正在使用该类调用web服务 我想将KeepAlive属性设置为“false”,但找不到该属性 我该怎么做呢?正如微软所说 我们建议不要在新开发中使用WebRequest或其衍生类。相反,请使用System.Net.Http.Http.HttpClientclass WebRequest是的基本抽象类。NET请求/响应模型,用于从Internet访问数据。因此,您可以使用具有KeepAlive属性的HttpClient 这很有帮助,尽管引用的未知来源文档令人困惑:首先是“我们建议……使用Web

我正在使用该类调用web服务

我想将KeepAlive属性设置为“false”,但找不到该属性


我该怎么做呢?

正如微软所说

我们建议不要在新开发中使用WebRequest或其衍生类。相反,请使用System.Net.Http.Http.HttpClientclass

WebRequest是的基本抽象类。NET请求/响应模型,用于从Internet访问数据。因此,您可以使用具有
KeepAlive
属性的HttpClient



这很有帮助,尽管引用的未知来源文档令人困惑:首先是“我们建议……使用WebRequest”,然后是“相反,使用……HttpClient”。似乎第一句话缺少了“不要使用”。上面写着“我们不建议您在新开发中使用WebRequest或其派生类。”和翻译我得到的法语版本“我们不建议在新开发中使用WebRequest或其派生类”。相反,请使用System.Net.Http.HttpClient类。这就是为什么我说使用
httpClient
是的,语句被翻译了,我复制了。来自OPs链接的源代码。对,但您看到第一句话是“使用”-而不是“不使用”-
WebRequest
?第一句说“使用WebRequest”,第二句说“使用…HttpClient”。这就是为什么我说它很混乱。你可以通过
request.headers[HttpRequestHeader.Connection]
request.headers[HttpRequestHeader.KeepAlive]
访问相应的头,尽管上面说
连接
头是“受限的“。您如何使用
WebRequest
?它是一个抽象类,所以最终必须使用派生类。也许您已经在使用
HttpWebRequest
,只需要强制转换它?该类公开正确的
连接
KeepAlive
属性。
KeepAlive
是属于创建新WebRequest时生成的类对象的属性:
HttpWebRequest request=WebRequest.CreateHttp(URI)
KeepAlive
在Http 1.1中通常设置为
true
,在Http 2.0中被忽略,因为它是默认值,您无法更改它。Http 1.0(如果您可以在某处找到使用它的东西)可以设置为
false
(然后,它取决于您所发生的情况)。如果您设置了
KeepAlive=false
,则可以将其解释为
ConnectionClose
。顺便说一句,您不创建连接,而是请求一个连接,分配给您的连接请求的
服务点处理此问题
KeepAlive
也是握手中执行的事务的一部分。为什么您认为需要设置
KeepAlive=false