0

Windows Media Player/Silverlight からのストリーミング メディアの要求を処理できる IHttpHandler を作成しようとしています。つまり、このような生の 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) を持つ行が 2 つあるため、実際には実行できません。

元のパケットを取得できれば、これらを手動で解析できると想定しています。

とはいえ、次にやりたいことは、HttpWebRequest 型の 2 次リクエストを作成することです。それはまた、一方が他方を上書きすることなく、2つの同一のプラグマ値を受け入れることができないと私が期待する同様の辞書を備えています。

何か不足していますか?

4

2 に答える 2

0

プラグマヘッダーがないという事実は、それらが送信されていない可能性があると私に思わせます。Fiddler を使用してネットワーク トラフィックを監視し、送信されていることを確認することをお勧めします。

于 2009-04-07T10:53:42.280 に答える
0

どのようにアクセスしていRequest.Headersますか? NameValueCollectionは複数のヘッダーのケースを処理しますが、それらにアクセスするには適切なメンバーを使用する必要があります。

string[] values = context.Request.GetValues("Pragma");

(インデックス プロパティは基本的join(','...)に、複数の値がある場合に実行されます)。

于 2009-04-07T10:56:51.023 に答える