我正在每个静态请求方法中重新创建HttpClient
的实例,但read更优先(在大多数情况下)重用 {{1}实例。
在静态类中重用HttpClient
个实例的首选/推荐方法是什么?
答案 0 :(得分:1)
由于您的请求方法是静态的,HttpClient
也必须是该类的static
成员才能被重用(或者某些道德等同物)。
你也可以决定在这里添加更多抽象,例如而不是抓取static
字段使用private static
getter方法;这允许您集中决定是否应该重用HttpClient
或者是否基于每个呼叫返回另一个实例。
答案 1 :(得分:0)
我的理解是,您可以初始化HTTP客户端并重用该实例,只要您公开调用它就会是线程安全的,请参阅此处的线程安全部分https://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.dnsrefreshtimeout(v=vs.110).aspx 如果每次执行所有操作都是打开多个套接字时创建一个新的HTTPClient调用。 这篇文章(及相关评论)非常简洁地解决了这个话题。 https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/