C # Нестандартный заголовок в ответе вызывает исключение

Я должен быть в состоянии отправить запрос HTTP для ответа, как это:

HTTP/1.0 200 OK
/bin/sh: check_updatelock: not found
Cache-Control: no-cache, must-revalidate
Expires: ...
Content-Type: application/json

{"response": "..."}

Теперь здесь /bin/sh вызывает исключение: Received an invalid header name: '/bin/sh'System.Net.Http.HttpConnection.ParseHeaderNameValue ).
Я пробовал с HttpClient , WebClient , HttpWebRequest и даже с сторонней Flurl имени Flurl , но она использует HttpClient под капотом.
Результат всегда одинаков.
Даже в PowerShell с Invoke-WebRequest существует исключение: The server committed a protocol violation. Section=ResponseHeader Detail=Header name is invalid The server committed a protocol violation. Section=ResponseHeader Detail=Header name is invalid

Как я мог прочитать такой ответ из консольного приложения C # .NET Core?
(Сервер вне моего контроля)

Любая идея высоко ценится!

Всего 1 ответ


Символы-разделители, такие как «/», не являются частью имени поля в заголовке. Таким образом, HttpClient (и другие библиотеки, созданные поверх него) выдаст ошибку.

Вы можете попробовать другие сторонние библиотеки, которые не основаны на HttpClient, как RestSharp (я не уверен, поддерживает ли он нестандартный заголовок, но не на основе HttpClient)