Как реализовать индикатор выполнения при вызове HTTP-запроса клиента - PullRequest
0 голосов
/ 23 октября 2018

Просто вопрос, я запутался в том, как мне этого добиться.Я просто хочу реализовать индикатор прогресса на сколько времени ответ от HTTP-запроса клиента.Я видел много уроков о том, как реализовать этот индикатор, но все это было сосредоточено на файле, загружаемом с сервера.Я хочу спросить, что было бы лучшим подходом для этого.

Это моя ситуация.У меня есть веб-API, который генерирует ZIP-файл, который содержит файл из нескольких слов, который был создан на основе параметров с вызывающего сайта.По сути, многое происходит из-за извлечения записей из базы данных и генерации этих файлов, поэтому для отправки ответа потребовалось время, и я хочу хотя бы показать индикатор выполнения из этого, чтобы когда наш пользователь нажимал кнопку, чтобысгенерируйте этот файл, они могут видеть ход создания отчета.

Вот как я использую 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");
}

Я вызываю этот метод при отправке формы, так как он имеетпараметры, необходимые для генерации отчета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...