Я пытаюсь написать IHttpHandler, который может работать с запросом на потоковое мультимедиа, поступающим из проигрывателя Windows Media/Silverlight. Это означает ответ на необработанный HTTP-запрос, подобный этому (взято из документа протокола)
"GET /ms/contoso_100_files/0MM0.wmv HTTP/1.0"
"Accept: */*"
"User-Agent: NSPlayer/4.1.0.3925"
"Host: netshow.micro.com"
"Pragma: no-cache,rate=1.000000,stream-time=0,stream-offset=0:0,request-context=1,max-duration=0"
"Pragma: xClientGUID={2200AD50-2C39-46c0-AE0A-2CA76D8C766D}"
Когда я приземляюсь в методе ProcessRequest, коллекция context.Request.Headers, похоже, не предоставляет значения Pragma. Кроме того, он никогда не сможет этого сделать, так как есть две строки с одним и тем же ключом (Pragma)!
Я предполагаю, что если я смогу получить исходный пакет, я смогу разобрать его вручную.
Тем не менее, следующее, что я хочу сделать с ним, — это создать вторичный запрос типа HttpWebRequest. Это также содержит аналогичный словарь, который, как я ожидаю, также не сможет принять два идентичных значения прагмы без перезаписи одного другим.
Я что-то упускаю?