0

I have application. It send request to my proxy class. Proxy must to parse http header string (I done this) and resend it request to server to get a video.

At first, mediacomponent connect to proxy:

var uri = new Uri("http://127.0.0.1:2233/files/1.mp4");
videoPlayer.Source = uri;
Play();

Proxy get http header string

"GET /files/1.mp4 HTTP/1.1\r\nCache-Control: no-cache\r\nConnection: Keep-Alive\r\nPragma: getIfoFileURI.dlna.org\r\nAccept: */*\r\nUser-Agent: NSPlayer/12.00.7601.17514 WMFSDK/12.00.7601.17514\r\nGetContentFeatures.DLNA.ORG: 1\r\nHost: 127.0.0.1:2233\r\n\r\n"

I replase host:

"GET /files/1.mp4 HTTP/1.1\r\nCache-Control: no-cache\r\nConnection: Keep-Alive\r\nPragma: getIfoFileURI.dlna.org\r\nAccept: */*\r\nUser-Agent: NSPlayer/12.00.7601.17514 WMFSDK/12.00.7601.17514\r\nGetContentFeatures.DLNA.ORG: 1\r\nHost: myserver.ru\r\n\r\n"

Now proxy must get video from server. What must I do?

4

1 に答える 1

0

.NET を使用する場合、HTTP メッセージ自体を手動で作成する必要はありません。代わりに、 System.Net.Http 名前空間のクラスを使用して、HTTP メッセージを作成して送信し、応答を処理します。

たとえば、HTTP GET メッセージを URL に送信するのは、次のように簡単です。

var uri = new Uri("http://www.foobar.com/");
var client = new HttpClient();
string body = await client.GetStringAsync(uri);

この一般的なアプローチでは、指定された URI でリソースのコンテンツ全体がダウンロードされることに注意してください。あなたの場合、再生/処理/保存を開始する前に、ビデオ全体がダウンロードされるのを待ちたくないかもしれません。その場合、HttpClient.ReadAsStream()ストリームが閉じるまで読み取ることができるストリームを返すメソッドを使用することをお勧めします。

于 2013-03-11T06:02:11.383 に答える