Доброго времени суток, народ!
У меня есть метод. Net Core 2.2 Api Controller, который возвращает FileContentResult, например:
[HttpGet]
public async Task<IActionResult> Get()
{
return File(_service.GetCsvFile(), "text/csv", "results.csv");
}
также, у меня есть интеграционный тест, который использует WebHostFixture и httpClient для получения результатов, однако содержимое всегда пусто, какой бы метод я ни попробовал. Пока есть файл с возвращаемым содержимым:
var response = await WebHost.Client.GetAsync(url, HttpCompletionOption.ResponseContentRead);
var result = await response.Content.ReadAsByteArrayAsync();
также, когда я делаю следующее, содержимое не читается:
var response = await WebHost.Client.GetByteArrayAsync(url);
Все остальные интеграционные тесты с использованием этого WebHostFixture запускаются успешно, поэтому кажется, что это единственная конечная точка, которая не возвращает данные должным образом в моей тестовой среде. Когда я вызываю конечную точку с помощью PostMan, файл CSV с содержимым возвращается правильно.
Кроме того, в Postman, помимо получения двоичных данных в теле, возвращаются следующие заголовки:
введите описание изображения здесь
Однако в моем тестовом методе после вызова метода GetAsyn c response.Content.Headers.ContentType равен "text / csv" , но response.Content.Headers.ContentLength - это 0 .
Что я делаю неправильно и почему здесь не возвращаются двоичные данные?