dev*_*969 5 c# dotnet-httpclient asp.net-web-api2 asp.net-core-webapi
在等待新的闪亮HttpClientFactory
解决所有问题的同时HttpClient
,
我仍然无法找到是否HttpResponseMessage
和HttpRequestMessage
应该处置的答案。
像下面这样的东西是一种很好的做法吗?
您是否使用 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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
您是否将Using 语句与HttpResponseMessage 一起使用?
简短回答:是的,可以。
像下面这样的做法是好的吗?
这取决于。
虽然通常建议实践将IDisposable
派生类包装起来using
以便正确处置,但所示的示例可能错误地使用了它。
被messageResponse
注入到包装类 ( MyWrapperResponse
) 中,然后函数立即返回。如果在该包装器的构造函数之外使用响应消息,则响应可能已被处理。
归档时间: |
|
查看次数: |
2894 次 |
最近记录: |