c#HttpClient的一个实例可以处理所有子域请求吗?

时间:2017-12-16 22:15:45

标签: c# httpclient

在我们的项目中,我们成功使用了HttpClient Per BaseAddress(Domain)模式的一个实例。例如, api.externalservice.com 的所有请求都来自同一个HttpClient。我们的代码旨在处理此类请求。 现在,我们需要调用两个不同的子域( api1.externalservice.com api2.externalservice.com )。 HttpClient的一个实例是否足以处理这两个子域的请求和响应?或者我们是否需要两个HttpClient实例(一个用于api1.externalservice.com,另一个用于api2.externalservice.com)?这对于我们改变或不改变我们的代码结构非常重要。

1 个答案:

答案 0 :(得分:0)

一个例子很好。只有当你需要多线程时 - 那么你应该为每个线程都有一个实例。

更新:(谢谢Kirk)

根据这个https://msdn.microsoft.com/en-us/library/system.net.http.httpclient(v=vs.110).aspx#Anchor_5有些方法甚至是线程保存。

并在页面上注明此评论:

  

HttpClient旨在实例化一次并在整个过程中重复使用   申请的生命。实例化HttpClient类   每个请求都会耗尽重量下的插座数量   负载。这将导致SocketException错误。