C# WebRequest类并将keepAlive设置为false
我正在使用该类调用web服务 我想将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
我该怎么做呢?正如微软所说 我们建议不要在新开发中使用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
?