在等待新的 Shiny HttpClientFactory解决HttpClient的所有问题时,

我仍然找不到答案是否应该丢弃HttpResponseMessageHttpRequestMessage

下面是一种好的做法吗?

您是否在HttpResponseMessage中使用了Using语句?

//httpClient has been injected

using (HttpResponseMessage messageResponse = await httpClient.GetAsync(uri, cancellationToken).ConfigureAwait(false))
{
    using (HttpContent content = messageResponse.Content)
    {
        if (messageResponse.IsSuccessStatusCode)
        {
            var json  = await content.ReadAsStringAsync();
            var response = await Task.Run(() => JsonConvert.DeserializeObject<TResponse>(json, serializerSettings));

            return new MyWrapperResponse<TResponse>(messageResponse,response);
        }
    }
}

最佳答案



简短的回答:是的,您可以。



这取决于。

虽然通常建议做法是将IDisposable派生的类与using包裹在一起以进行适当处理,但所示示例可能使用不正确。

将该messageResponse注入(inject)包装类(MyWrapperResponse),然后此函数立即返回。如果响应消息是在包装器的构造函数之外使用的,则响应可能已经被释放。

关于c# - 您处理HttpResponseMessage吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50599377/

10-15 06:47