如何在HTTP客户端请求调用期间实现进度栏

时间:2018-10-23 10:50:16

标签: javascript c# ajax http asp.net-core

只是一个问题,我对如何实现这一目标感到困惑。我只想实现关于HTTP客户端请求调用响应时间的进度条。我看到了很多有关如何实现此进度条的教程,但所有这些都集中在从服务器下载文件中。我想问问什么是最好的方法。

这是我的情况。我有一个Web API,它会生成一个zip文件,其中包含多个word文件,该文件是基于调用站点的参数生成的。基本上,从数据库中提取记录并生成这些文件会发生很多事情,这就是为什么发送响应要花一些时间的原因,并且我至少要显示进度条,以便当我们的用户单击该按钮时,生成此文件,他们可以查看要生成的报告的进度。

这是我使用API​​的方式:

using (var client = new HttpClient())
{
    client.BaseAddress = new Uri ("MYBASEURI");
    client.DefaultRequestHeaders.Accept.Clear();
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/zip"));
    var content = new StringContent(strModel, Encoding.UTF8, "application/json");
    var response = await client.PostAsync("API_URI", content);
    if (!response.IsSuccessStatusCode)
    {
        ExceptionResponse ex = await response.ExceptionResponse();
        return null;
    }
    var data = await response.Content.ReadAsStreamAsync();
    return File(data, "application/zip", "File.zip");
}

我在表单提交时调用此方法,因为它具有生成报告所需的参数。

0 个答案:

没有答案