Багато рішень говорять про вирішення проблеми, але не про фактичну причину помилки.
Однією з можливих причин цієї помилки є те, якщо веб-сервер використовує кодування, відмінне від ASCII
або ISO-8859-1
для виведення розділу відповідей заголовка. Причиною для використання ISO-8859-1
буде, якщо Response-Phrase
містить розширені латинські символи.
Іншою можливою причиною цієї помилки є те, якщо веб-сервер використовує, UTF-8
що виводить маркер порядку байтів (BOM). Наприклад, константа за замовчуванням Encoding.UTF8
виводить BOM, і це легко забути. Веб-сторінки будуть працювати належним чином у Firefox та Chrome, але HttpWebRequest
будуть бомби :). Швидке виправлення полягає в тому, щоб змінити веб-сервер на використання кодування UTF-8, яке не виводить BOM, наприклад new UTF8Encoding(false)
(це нормально, поки Response-Phrase
єдиний містить символи ASCII, але насправді він повинен використовуватись ASCII
або ISO-8859-1
для заголовків, а потім UTF-8
або якесь інше кодування для відповіді).