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();
我相信这可以理解为两种方式,所以任何具体的输入都是值得赞赏的。
在我看来,如果它打算一次只用于一个请求,那么如果您试图将它用于多个请求,它将简单地抛出异常。
另外,考虑到除了最早版本的HTTP之外,所有HTTP都允许对给定的TCP连接进行多个请求。使用相同的HttpClient
对象允许框架为多个请求维持一个TCP连接。
HttpClient类实例作为会话发送HTTP请求和接收响应。HttpClient实例是将应用于该实例执行的所有请求的设置集合。此外,每个HttpClient实例都使用自己的连接池& help;
(我强调)
要使对象充当"应用于该实例执行的所有请求的设置集合",显然它必须用于多个请求。