【发布时间】:2019-11-20 09:22:41
【问题描述】:
我正在尝试循环执行HttpClient.GetAsync。
根据Microsoft Doc,建议使用HttpClient 的1 个实例。
我得到HttpClient 的方式是
var httpClient = HttpClientFactory.Create(HttpClientRequestHandler.HttpMessageHandler, delegatingHandler);
它第一次很好地命中了GetAsync 函数,但是当我重用httpClient 引用时,我得到了错误:The 'DelegatingHandler' list is invalid because the property 'InnerHandler' of 'HttpClientTelemetryHandler' is not null.
当我每次都尝试在循环中创建一个新的Handler 和HttpClient 实例时,它工作正常。
现在这是利益冲突。我应该每次在循环中创建一个新实例,还是有任何其他方法可以做到这一点,这是正确的方法。
附加信息:我用来创建HttpClient 的自定义库是.Net Standard 2.0,调用HttpClient 的客户端应用程序是.Net Core 2.1。
感谢任何帮助。
谢谢。
【问题讨论】:
-
为什么需要这样创建HttpClient?你能分享一些代码吗?
标签: c# loops dotnet-httpclient delegatinghandler httpclienthandler