Поддерживаются ли дубликаты заголовков http в .net 4? - PullRequest
0 голосов
/ 23 декабря 2011

Я заметил, что при использовании моего простого ресурса (перечисленного ниже) я могу получить заголовок Accept, ссылаясь на «WebOperationContext.Current.IncomingRequest.Accept», хотя для соответствия спецификации мне нужно выполнить итерацию по всем предоставленным заголовкам Acceptnames, хотя кажется, что WCF возвращает только первое найденное.

 [WebGet(UriTemplate = "system", ResponseFormat = WebMessageFormat.Json)]

Если я поместил все значения имени заголовка в одну строку и разделил их запятыми, это сработало.Но это не та проблема, о которой я говорю здесь.

Я бы сказал, что это именно то, что есть, хотя http://www.faqs.org/rfcs/rfc2616.html раздел 4.2 указывает, что допускается использование нескольких имен заголовков, если их значения могутбыть присоединенным запятой и все еще иметь правильный синтаксис (который может быть).

Так что мне смешно, что это не будет поддерживаться.Я что-то упустил?

1 Ответ

0 голосов
/ 23 декабря 2011

Я вообще не проверял, но вы пробовали WebOperationContext.Current.IncomingRequest.Headers["Accept"]?

Я знаю, что если вы вызовете WebHeaderCollection.Add несколько раз для одного и того же заголовка, он объединит их с запятыми, где это необходимо. Но теоретически может случиться так, что IncomingWebRequestContext хранит первый заголовок Accept отдельно, поскольку это просто удобное свойство и может работать только с общим случаем только одного заголовка Accept.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...