我应该为每个功能使用HttpClient还是整个应用程序使用一个?

时间:2014-08-22 12:44:56

标签: c# .net web-services httpclient

我正在为某些REST类型API创建.NET包装器。 我正在使用HttpClient进行通信(发送/接收Json)。 有许多异步方法。

验证是通过我收到的cookie并存储在cookiecontainer中。 我应该为每个函数或一个全局httpClient分别使用httpclient吗? 如果每个函数分开一个,那么分享附加到每个请求的cookiecontainer和自定义标头的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

我建议保留与您正在调用的API相同的数字(这是我编写的方式),这意味着如果您要调用Twitter API,只需保留一个HttpClient实例,如果你在同一时间访问Facebook API,为此保留另一个。

请记住,在创建HttpClient之后,某些元数据无法更改(例如DefaultRequestHeaders),这是有意义的,因为HttpClient旨在重用以进行多次调用(例如,易于cookie或auth信息共享)。 / p>

答案 1 :(得分:-3)

绝对是每个函数,在using语句中。自定义标题可以存储在静态变量中,只要它们只是被读取即可。在处理任何实例成员时,cookie容器可能需要锁定。