F# HttpClientHandler 处置

F# HttpClientHandler Dispose

提问人:Wizr 提问时间:11/3/2023 最后编辑:Matthew MacFarlandWizr 更新时间:11/8/2023 访问量:54

问:

虽然通常建议不要为每个请求创建 HttpClient 的实例,但可能会有例外,例如根据是否应使用代理有条件地创建实例。以下代码片段对此进行了说明,但它没有提供释放 HttpClientHandler 的机会。那么,处理这个问题的正确方法是什么呢?

use httpClient =
    if System.String.IsNullOrWhiteSpace apiHttpProxy |> not then
        let httpClientHandler =
            new HttpClientHandler(Proxy = WebProxy(System.Uri(apiHttpProxy), true))

        new HttpClient(httpClientHandler, true)
    else
        new HttpClient()
F# httpclient

评论


答:

3赞 Viktor Arsanov 11/3/2023 #1

HttpClient 具有构造函数,该构造函数具有布尔参数,用于指定是否应在客户端处置时自动释放处理程序。详情请见此处

我看到你已经在你的示例中有了它,所以你不需要做任何其他事情。