首页 > 解决方案 > 每个应用程序使用一次 httpclient 与静态 httpclient

问题描述

我阅读了很多文件,也看到了很多例子。但我没能准确理解哪种是使用 httpclient 的正确方法。我的应用程序在不同的线程和不同的 url 中多次使用 httpclient,并且在大多数情况下同时使用。到现在为止,我在下面的每个请求中都使用 httpclient 作为示例。

using(var client = new HttpClient())
{
    client.TimeOut = TimeSpan.FromSeconds(20);
    var result = await client.GetAsync(www.mysite.com);
}

正如微软的文档所说“HttpClient 旨在为每个应用程序实例化一次,而不是每次使用”我可以使用 httpclient 的静态实例吗?然后在不影响已经激活的“GET”请求的情况下发出请求?通过这种方式更好吗?请有人澄清一下吗?

我正在使用一个 winform 应用程序和一个 xamarin 应用程序。

标签: c#httpclient

解决方案


您是对的,您应该为您的应用程序创建一个 HttpClient 实例并在每个线程中使用它。一种流行的方法是使用单例模式。

如果您希望它们具有不同的行为,那么您在同一个应用程序中有多个 HttpClient 实例的情况是,例如,您可能想要一个具有 cookie 存储而另一个没有。


推荐阅读