gpt4 book ai didi

c# - HttpResponseMessage 你处理了吗?

转载 作者:太空宇宙 更新时间:2023-11-03 12:14:01 27 4
gpt4 key购买 nike

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

我仍然找不到是否应该处理 HttpResponseMessageHttpRequestMessage 的答案。

像下面这样的做法是好的吗?

您是否将 Using 语句与 HttpResponseMessage 一起使用?

//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);
}
}
}

最佳答案

Do you use a Using statement with HttpResponseMessage?

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

Is something like below a good practice?

视情况而定。

虽然通常建议使用 using 包装 IDisposable 派生类以进行正确处理,但显示的示例可能使用不正确。

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

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

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com