Здравствуйте, Kolesiki, Вы писали:
K>Итак, "закат солнца вручную" или "пишем сами http клиента". Ну а почему бы и нет?
K>Как многие знают, http весьма бестолков в плане проектирования, поэтому при получении ресурса может быть такая несуразица:
Ну, в частности, поэтому и появились HTTP/2 и HTTP/3.
K>PS
K>Я в курсе и про бесполезный TCPClient, и про WebClient (который неожиданным образом "устарел"), и про HttpClient... но опыт работы с этими ушлёпищами таков, что это танцы на костылях с коньками на концах. Это всё так же бестолково спроектированные и неуклюжие классы, где ты ничего не контролируешь. Да и не в них вопрос — тут глобальнее проблема: мы НЕ ДОЛЖНЫ зависеть от "устаревающих фантазий" MS в виде WebClient, а должны уметь писать сами ЛЮБОЙ протокол! Да-да, на тех самых Read[Line] — "полный контроль" и всё такое. Увы, не в этой жизни, видимо.
Вспоминается stdio — и буфер есть, и побайтная работа достаточно эффективная, и поблочная. Асинхронности нет, но это дорабатывается.
Я надеюсь, в дотнете можно без лишних затрат перевести Span<char[]> (или как оно там правильно пишется) в строек, зная кодировку, без лишних копирований и аллокаций?