Windows.Web.Http.HttpClient必须处理每个HTTP请求吗?

本文关键字:HTTP 请求 处理 Http Web HttpClient Windows | 更新日期: 2023-09-27 18:01:31

从这个问题的答案:HttpClient和HttpClientHandler必须被处置?,我看到最佳实践是而不是处理每个HTTP请求的System.Net.Http.HttpClient。特别指出:

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();

我相信这可以理解为两种方式,所以任何具体的输入都是值得赞赏的。

Windows.Web.Http.HttpClient必须处理每个HTTP请求吗?

在我看来,如果它打算一次只用于一个请求,那么如果您试图将它用于多个请求,它将简单地抛出异常。

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

虽然示例代码确实只执行一个请求,但请注意文档中的这段文字:
HttpClient类实例作为会话发送HTTP请求和接收响应。HttpClient实例是将应用于该实例执行的所有请求的设置集合。此外,每个HttpClient实例都使用自己的连接池& help;

(我强调)

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