Silverlight 5 で Gzip されたコンテンツをリクエストするのに問題があります。使用帯域幅を減らすために、Web サービスからリクエストされたコンテンツに gzip を使用したいのですが、残念ながらこれは機能しません。
私はクライアント スタックを使用しており、HttpWebRequest を送信しています。Accept-Encoding ヘッダーを設定しようとしましたが、これを直接変更することは許可されていないことがわかりました。それ以外のプロパティはありません。
では、カスタムの Accept-Encoding ヘッダーを送信するにはどうすればよいでしょうか?
これは、App-Constructor にあるコードです。
WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
WebRequest.RegisterPrefix("https://", WebRequestCreator.ClientHttp);
これは、リクエストを作成してヘッダーを設定する方法です。
var webRequest = (HttpWebRequest)WebRequest.Create(requestUri);
webRequest.Headers["Accept-Encoding"] = "gzip, deflate";
これは例外です:
{System.ArgumentException: The 'Accept-Encoding' header cannot be modified directly.
Parameter name: name
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at MyClass}