Я пытаюсь написать IHttpHandler, который может работать с запросом на потоковое мультимедиа, поступающим из Windows Media Player/Silverlight. Это означает, что в ответ на запрос HTTP сырого, как это (взят из документа протокола)Доступ к исходному пакету HTTP-запроса в IHttpHandler
"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. Это также спортивный аналогичный словарь, который, как я ожидаю, также не сможет принять два одинаковых значения прагмы без перезаписи другого.
Я что-то упустил?
Спасибо, я просто попробовал это, и он работает: HttpWebRequest request = (HttpWebRequest) WebRequest.Create ("http: //localhost/whatever.html"); request.Headers.Add (HttpRequestHeader.Pragma, "Blah1"); request.Headers.Add (HttpRequestHeader.Pragma, "Blah2"); Что решает второй вопрос, Джон –