Задать вопрос
  • Как в C# HttpClient вычислить время отправки запроса, время ожидания ответа и время получения ответа?

    @evgsvg Автор вопроса
    Нужно дополнительно в Get добавить HttpCompletionOption.ResponseHeadersRead
    Иначе в строке
    response = await responseTask;
    будет получен ответ полностью,
    а с HttpCompletionOption.ResponseHeadersRead, мы ждём заголовок, а ответ получаем непосредственно в
    await response.Content.CopyToAsync(fs);

    startSendRequest = DateTime.UtcNow;
    var responseTask = HttpClient.GetAsync("Test/GetFile", HttpCompletionOption.ResponseHeadersRead);
    endSendRequest = DateTime.UtcNow;
    
    startWaitingResponse = DateTime.UtcNow;
    response = await responseTask;
    endWaitingResponse = DateTime.UtcNow;
    
    startGetResponse = DateTime.UtcNow;
    var fs = new FileStream(@"C:\test\SampleFile.txt", FileMode.Create, FileAccess.Write, FileShare.None);
    await response.Content.CopyToAsync(fs);
    endGetResponse = DateTime.UtcNow;
    Ответ написан
    Комментировать