2010-12-07 42 views
1

我有一個使用的HttpWebRequest下載的「塊」使用HTTP 1.1的範圍頭文件一個Silverlight OOB應用程序。替代HttpWebRequest.ProtocolVersion在Silverlight

我們的某些用戶擁有個人電腦或使用代理服務器只支持HTTP 1.0所以這頭/功能不可用。這導致客戶端嘗試一次下載超大文件,而不是以較小的「塊」進行下載。這極大地影響了應用程序的使用體驗,我想在這種情況下實現替代功能。

不幸的是,Silverlight不支持HttpWebResponse.ProtocolVersion所以我不能輕易如果客戶端不支持範圍頭檢測。

有沒有辦法來檢測在Silverlight中使用的HTTP版本? (訪問原始HTTP響應?)
或者我需要在服務器上檢測到這一點並正確通知Silverlight客戶端?

回答

1

如果您在Silverlight中使用ClientHTTP堆棧可以訪問Headers集合響應對象。這不會讓您檢測協議版本,但它應該允許您檢測到「Accept-Ranges」標頭是否存在並具有「字節」值。

所以測試請求到服務器上的一些靜態的沒有緩存的資源可能會允許您檢測基於範圍請求是否是可以接受的。

+0

偉大的解決方案。謝謝安東尼。沒有想到這一點,因爲我的開發服務器不包括「Accept-Ranges」頭文件,而是活動服務器(CDN)。 – 2010-12-08 10:46:11