Здравствуйте, есть ответ полученный для httpClient. Ответ считываю не в строку, а в поток (т.к. вся инфраструктура обмена данными работает с потоками). Этот поток нужно скопировать, но поток не копируется.
using (HttpContent content = response.Content)
{
var outputBody = await content.ReadAsStreamAsync();
//DEBUG-------------
StreamReader reader = new StreamReader(outputBody);
string text = reader.ReadToEnd(); //чтение полученного потока дает правильную строку.
//DEBUG-------------
var memoryStream = new MemoryStream();
outputBody.CopyTo(memoryStream); // копируем поток
//DEBUG-------------
reader = new StreamReader(memoryStream);
text = reader.ReadToEnd(); // тут пустая строка!!!!!!!!!!!
//DEBUG-------------
return new MyHttpResponse { Body = memoryStream, StatusCode = response.StatusCode, Headers = response.Headers };
}
Не могу понять в чем дело?
//DEBUG-------------
StreamReader reader = new StreamReader(outputBody);
string text = reader.ReadToEnd(); //чтение полученного потока дает правильную строку.
//DEBUG-------------
Вот это удали, потому что уже нечего читать, когда всё прочитано.
var memoryStream = new MemoryStream();
outputBody.CopyTo(memoryStream); // копируем поток
После этого надо перемотать поток в начало:
memoryStream.Position = 0;
//DEBUG-------------
reader = new StreamReader(memoryStream);
text = reader.ReadToEnd(); // тут пустая строка!!!!!!!!!!!
//DEBUG-------------
Если это оставить, то надо ещё раз добавить
memoryStream.Position = 0;
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости