2013-03-11 117 views
0

我有應用程序。它發送請求到我的代理類。代理服務器必須解析http標頭字符串(我完成了這個),並重新發送請求到服務器以獲取視頻。重新發送HTTP標頭

起初,mediacomponent連接到代理:

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

代理取得HTTP頭字符串

"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" 

我replase主持人:

"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" 

現在代理必須從服務器獲取視頻。我必須做什麼?

+2

很難說出這裏要問什麼。這個問題含糊不清,含糊不清,不能以目前的形式合理回答。 – 2013-03-11 05:40:26

+0

我只需要做一個視頻流和緩存。代理將視頻保存在文件系統中,並將其從服務器流式傳輸到媒體組件。 – user2155564 2013-03-11 05:45:07

+0

@ user2155564你用什麼來將請求發送到服務器? HttpClient的? HttpRequest的?其他? – rhughes 2013-03-11 05:45:25

回答

0

使用.NET時,您不必手動創建HTTP消息本身。相反,使用System.Net.Http namespace中的類來形成併發送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()方法,該方法將返回一個可讀取的流,直到流關閉。

相關問題