IsSuccessStatusCode返回false时是否需要调用Dispose?

问题描述 投票:0回答:1

基本上我想知道当 IsSuccessStatusCode 在调用 HttpClient.PostAsync 之类的东西后返回 false 时是否需要调用 Dispose,我使用的是静态 HttpClient,所以我不能使用 using 块

HttpResponseMessage response = await Global.HttpClient.PostAsync("*****", content);
if (response.IsSuccessStatusCode)
{
    // Get data from the response
    response.Dispose();
}
else
{
    // Log error
}
            
return results;

我想知道这是否是正确的方法

c# dotnet-httpclient
1个回答
0
投票

using
的替代方案是尝试/最后:

HttpResponseMessage response = await Global.HttpClient.PostAsync("*****", content);
try
{
    if (response.IsSuccessStatusCode)
    {
        // Get data from the response
    }
    else
    {
        // Log error
    }
}
finally
{
    response?.Dispose();
}
            
return results;

但是 should 只是使用

using
的等效代码。所以,我实际上会推荐这样做。我在这里看不出为什么这是不可能的。

© www.soinside.com 2019 - 2024. All rights reserved.