每个应用程序使用一次 httpclient 与静态 httpclient
Using httpclient vs static httpclient once per application
我看了很多文档,看到了很多例子。但我没能准确理解哪种是使用 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 应用程序。
你是对的,你应该为你的应用程序创建一个 HttpClient 实例,并在你的每个线程中使用它。一种流行的方法是使用单例模式。
在同一个应用程序中有多个 HttpClient 实例的情况是,如果您希望它们有不同的行为,例如,您可能想要一个有 cookie 存储而另一个没有。
我看了很多文档,看到了很多例子。但我没能准确理解哪种是使用 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 应用程序。
你是对的,你应该为你的应用程序创建一个 HttpClient 实例,并在你的每个线程中使用它。一种流行的方法是使用单例模式。
在同一个应用程序中有多个 HttpClient 实例的情况是,如果您希望它们有不同的行为,例如,您可能想要一个有 cookie 存储而另一个没有。