c# - 每个应用程序使用一次 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 应用程序。
解决方案
您是对的,您应该为您的应用程序创建一个 HttpClient 实例并在每个线程中使用它。一种流行的方法是使用单例模式。
如果您希望它们具有不同的行为,那么您在同一个应用程序中有多个 HttpClient 实例的情况是,例如,您可能想要一个具有 cookie 存储而另一个没有。
推荐阅读
- javascript - 如何使用 JS 在单击 SVG 矩形上添加文本
- swift - Firebase 远程配置不更新值?
- reactjs - multipart/form-data post api 适用于邮递员,但不能按预期从本机反应
- syncfusion - 使用 Syncfusion Circular Gauge 静态注入错误来了
- python - 在熊猫df中转置多行数据
- javascript - 如何创建两个单独的列表并显示它们?
- wordpress - Docker本地环境自定义本地域(hosts文件?)
- ios - 从 Xamarin.Form 将 iOS 构建提交到 Facebook
- angular7 - ngModel 不使用 ngx-material-timepicker 中的 value 属性并在 Angular7 中输入?
- ruby - 为什么我的脚本不能访问不同目录中的类?