You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core中每次请求新建HttpClient实例时是否该释放?

每次新建HttpClient实例时的正确用法

在.NET Core应用里,如果每次请求都新建HttpClient实例(不遵循复用模式),必须用using关键字释放实例,具体说明如下:

  • 必须释放的原因:每个新建的HttpClient实例默认会绑定独立的HttpMessageHandler,这个Handler关联着套接字等底层资源。如果不释放,这些资源无法被及时回收,会堆积大量未释放的实例和资源,反而会加重套接字耗尽的问题。
  • 正确写法:
    兼容所有C#版本的传统using语句:
    using (var httpClient = new HttpClient())
    {
        var response = await httpClient.GetAsync("https://目标请求地址");
        // 编写响应处理逻辑
    }
    
    C# 8及以上版本可使用更简洁的using声明:
    using var httpClient = new HttpClient();
    var response = await httpClient.GetAsync("https://目标请求地址");
    // 编写响应处理逻辑
    

只要当前HttpClient实例不会被后续代码复用,就必须通过using(或手动调用Dispose())确保资源及时释放,避免资源堆积问题。

内容的提问来源于stack exchange,提问作者subject-q

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 09:49:50