C# Нестандартный заголовок в ответе вызывает исключение - PullRequest
0 голосов
/ 27 марта 2020

Я должен иметь возможность отправить 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).
I Я пытался использовать HttpClient, WebClient, HttpWebRequest и даже стороннюю библиотеку с именем Flurl, но в ней используется HttpClient.
Результат всегда один и тот же.
Даже в PowerShell с Invoke-WebRequest существует исключение: The server committed a protocol violation. Section=ResponseHeader Detail=Header name is invalid

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

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

1 Ответ

0 голосов
/ 27 марта 2020

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

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

...