У меня есть клиент c #, разговаривающий с веб-службой cherrypy (http / rest).
Проблема в том, что я не могу одновременно включить сжатие и кэширование.
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
Опуская вышеприведенную строку, я получаю правильные заголовки кэширования (If-None-Math, If-Modified-Since), а комментируя его, получаю заголовки сжатия (Accept-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;
}