是否必须按HTTP请求处理Windows.Web.Http.HttpClient?

Las*_*sen 5 .net c# dotnet-httpclient windows-store-apps

从这个问题的答案:HttpClient和HttpClientHandler必须处理?,我发现最好的做法是不要处理System.Net.Http.HttpClient每个HTTP请求.特别指出:

HttpClient的标准用法是不要在每次请求后处理它.

这没关系.

我的问题是,这种"模式"是否也适用于此Windows.Web.Http.HttpClient?或者它应该按HTTP请求处理?我认为文档对此有点模糊.在其中一个样本中,它只是说明:

// Once your app is done using the HttpClient object call dispose to 
// free up system resources (the underlying socket and memory used for the object)
httpclient.Dispose();
Run Code Online (Sandbox Code Playgroud)

我相信这可以通过两种方式阅读,因此对此有任何具体的意见.

Pet*_*iho 4

在我看来,如果它一次只用于一个请求,那么如果您尝试将它用于多个请求,它只会抛出异常。

另外,请考虑除最早版本之外的所有 HTTP 都允许对给定 TCP 连接进行多个请求。使用相同的HttpClient对象允许框架为多个请求维护 TCP 连接。

虽然示例代码确实只执行一个请求,但请注意文档中的以下文本:

HttpClient 类实例充当发送 HTTP 请求和接收响应的会话。HttpClient 实例是适用于该实例执行的所有请求的设置的集合。此外,每个 HttpClient 实例都使用自己的连接池......

[强调我的]

对于充当“适用于该实例执行的所有请求的设置集合”的对象,显然它必须用于多个请求。