在编写使用HttpClient的应用程序时,我使用与this post相同的方法,换句话说,我不使用using而是使用静态HttpClient。当我只想与一台服务器通信时,我没有遇到任何问题。 (我将IP地址设置为BaseAddress
并继续)
现在我遇到与this question相同的问题,即在开始使用HttpClient后无法更改BaseAddress这一事实。
该问题的答案回答了一个无法完成的解释。您无法更改BaseAddress。
所以,如果我们想要更改ip地址以与其他服务器通信,我的问题(与链接的不同,所以不重复)是该怎么办?
我们应该实例化另一个HttpClient吗? (不,我们不打算使用using
)我们如何正确地从这里开始?
就目前而言,您无法更改基址。
我们如何正确地从这里开始?
不要设置基址,只需使用请求的完整地址。
这样,相同的客户端可以用于为每个基地址创建新客户端所需的所有其他请求,这也将破坏拥有单个客户端的优势。
asp.net core 2+中的客户端工厂已经解决了与多个客户端相关的问题。
处置客户端不是强制性的,但这样做会取消任何正在进行的请求,并确保在调用Dispose后不能使用给定的HttpClient实例。工厂负责跟踪和处理HttpClient实例使用的重要资源,这意味着HttpClient实例通常可以被视为不需要处理的.NET对象。
这样做的一个结果是,不再需要人们今天用来处理HttpClient实例的一些常见模式,例如长时间保持单个HttpClient实例处于活动状态。有关工厂究竟是什么以及它所解决的模式的文档将可用,但尚未完成。
完成文档Use HttpClientFactory to implement resilient HTTP requests