仅等待HttpClient发送请求,但不等待它获得响应

时间:2020-10-20 11:58:25

标签: c# asp.net-core dotnet-httpclient

我有一个基本上充当代理的ASP Core应用

public IActionResult PostFileRequest(IFormFile file)
{
    var httpRequest = new HttpRequestMessage()
    {
        Content = new StreamContent(file.OpenReadStream())
    };
    var task = httpClient.SendAsync(httpRequest);

    // we store the task internally to be later processed by background services
    // we don't want the user to wait for the response

    return Ok();
}

此逻辑的问题在于,即使在发送httpRequest之前,用户也可以获得响应。文件流被处置,我得到了例外。我不希望客户端等待响应。 Task完成发送请求后,是否还有其他单独的HttpClient完成?发送文件后,我不再需要流,并且可以安全地回答用户并关闭上下文。

UPD:如果代码中的注释不够清楚:不,我不会忽略SendAsync的结果。我在后台服务中处理它。但是无论结果如何,对用户的响应始终是相同的,因此此处的任务是对用户进行回答并尽快释放上下文。

0 个答案:

没有答案
相关问题