Я пытаюсь получить поток данных с HttpClient
, но что-то странное происходит с HttpResponseMessage
. Я возвращаюсь.Почему заголовки содержимого httpresponsemessage не добавлены в правильное поле?
Как я отправить запрос, как это:
_webClient.SendAsync(new HttpRequestMessage(HttpMethod.Get, _webClient.BaseAddress + connectionSuffix), HttpCompletionOption.ResponseHeadersRead);
Однако в ответ в ContentHeaders не заполнены так, как я бы ожидать, что они будут. Вот пример: ответ содержит заголовок Content-Type, но его значение не может быть найдено в поле ContentType, только в общем Заголовки перечислимые.
Анализ потока пакетов в Wireshark дает мне следующее:
GET /video.cgi HTTP/1.1 Авторизация: Basic YWRtaW46 Ведущий: 192.168.0.150 Connection: Keep-Alive
Ответил с:
HT TP/1.0 200 OK Сервер: Веб-сервер камеры/1.0 Автор: Steven Wu MIME-версия: 1.0 Cache-Control: no-cache Content-Type: multipart/x-mixed-replace; border = - video boundary--
это не конец света, я после граничного параметра, и я могу найти его в общих заголовках поля. Но я не могу не задаться вопросом: это намеренное поведение? Я не могу найти какую-либо информацию о Получение заголовков, только о том, как добавить их в запрос (это другое дело).
Можете ли вы проверить ответ, используя такой инструмент, как Fiddler2? –
@OguzOzgul Я уже проверил ответ через Wireshark. Устройство отправляет правильный ответ.Я включил его в исходный вопрос. –
Это интересно, и я думаю, что CompletionOption играет здесь определенную роль. Почему бы вам не спросить об этом на сайте connect.microsoft.com? –