2010-12-07 13 views
1

私はHttpWebRequestを使用してHTTP 1.1の範囲ヘッダーを使用して "チャンク"でファイルをダウンロードするSilverlight OOBアプリケーションを持っています。SilverlightのHttpWebRequest.ProtocolVersionに代わるもの

私たちのユーザーの中には、PCを持っているものや、HTTP 1.0だけをサポートするプロキシを使用しているものがありますので、このヘッダー/機能は利用できません。これにより、クライアントは、より小さい「チャンク」ではなく、大容量のファイルを一度にダウンロードしようとします。これはアプリケーションの使用経験に大きな影響を与え、この場合は別の機能を実装したいと考えています。

残念ながら、SilverlightはHttpWebResponse.ProtocolVersionをサポートしていないため、クライアントが範囲ヘッダーをサポートしていないかどうかを簡単に検出できません。

Silverlightで使用されているHTTPのバージョンを検出する方法はありますか? (生のHTTPレスポンスへのアクセス?)
または、これをサーバー上で検出し、Silverlightクライアントに適切に通知する必要がありますか?

答えて

1

SilverlightでClientHTTPスタックを使用する場合は、応答オブジェクトのHeadersコレクションにアクセスできます。これでプロトコルバージョンを検出することはできませんが、 "Accept-Ranges"ヘッダーが存在し、値が "bytes"であることを検出できるはずです。

したがって、サーバー上の静的なキャッシュなしリソースに対するテスト要求によって、範囲ベースの要求が受け入れられるかどうかを検出できます。

+0

素晴らしいソリューション。感謝アンソニー。私のdevサーバには "Accept-Ranges"ヘッダは含まれていませんが、ライブサーバ(CDN)はこれを考慮していませんでした。 –