Поскольку вы можете прочитать заголовок HTTP, но не можете прочитать содержимое HTML, я предполагаю, что тело ответа HTTP было сжато (например, с помощью gzip). Вы можете распознать сжатые ответы, потому что заголовок ответа HTTP содержит строку вроде:
Content-Encoding: gzip
Если бы вы могли опубликовать пример выходных данных вашей программы, мы могли бы подтвердить эту теорию. В таком случае вы должны использовать декомпрессию тела сущности, чтобы получить HTML, отправленный сервером.
Для получения дополнительной информации о кодировке содержимого HTTP см. RFC 2616 .