私は、cherrypy(http/rest)Webサービスに話しているC#クライアントを持っています。 問題は、圧縮とキャッシュの両方を同時にオンにすることができないことです。上記の行を除外することでHttpWebRequestで圧縮とキャッシュを混在させる方法は?
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
私は正しいキャッシングヘッダを取得します(もし-なし - 数学、変更された場合--以降)、それをコメントアウトしながら、ことは私に圧縮ヘッダを取得します(受け入れ-Encodig:GZIP)ではなくをキャッシングヘッダ。私はバグのようですが、多分私は何か間違っています。
[フルコード]
public static string GET(string URL)
{
string JSON;
// Create the web request
HttpWebRequest request = WebRequest.Create(URL) as HttpWebRequest;
HttpRequestCachePolicy cPolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Revalidate);
request.Accept = "application/json";
request.CachePolicy = cPolicy;
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
request.Pipelined = false;
// Get response
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
// Get the response stream
StreamReader readerF = new StreamReader(response.GetResponseStream());
JSON = readerF.ReadToEnd();
// Console application output
//Console.WriteLine(JSON);
if (response.IsFromCache)
Console.WriteLine("Request not from cache");
}
return JSON;
}
キャッシュポリシーをデフォルトに設定しました。同じ結果は、圧縮がポリシーを無効にするように設定されているようです。 私は自分自身でキャッシュを実装できることは知っていますが、それは簡単ではありません:-) – AngelBlaZe