使用HttpClient在WebAPI中进行调用

时间:2017-10-04 00:45:01

标签: asp.net-web-api dotnet-httpclient

我一直致力于.NET 4.6.1 WebApi项目。作为这个项目的一部分,我需要调用另一个WebApi,我想使用HttpClient来实现。

从我的在线研究中,您不能仅仅依赖于在using子句中执行普通的HttpClient,因为它没有正确地进行垃圾收集并且可能导致内存泄漏。

EG。我目前正在使用它如下:

localhost/coursefiles/whtever.php

但是正如StackOverflow和其他人的其他文章中所建议的那样,这会导致内存泄漏,而解决这个问题的方法是共享HttpClient的单个实例。
例如。 https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/ HttpClientHandler / HttpClient Memory Leak

我不确定如何设置共享"单个" WebAPI本身内的HttpClient实例?

1 个答案:

答案 0 :(得分:0)

您应该看看如何实现单例模式,请参阅 - https://msdn.microsoft.com/en-us/library/ff650316.aspx

然后,您可以创建一个HttpClient的单身,并使其负责API中的所有HTTP次调用。