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

问题描述 投票:0回答:1

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

c# httpclient
1个回答
0
投票

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

更新:(谢谢柯克)

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

并在页面上注明此评论:

HttpClient旨在实例化一次,并在应用程序的整个生命周期中重复使用。为每个请求实例化一个HttpClient类将耗尽重负载下可用的套接字数量。这将导致SocketException错误。

© www.soinside.com 2019 - 2024. All rights reserved.