Example #1
0
        /// <summary>
        /// Returns a new HttpClient that does not write to the WinINET cache, and has Gzip/Deflate supports,
        /// and cache-control header set to prevent caching as 'private, max-age=0, no-cache'
        /// </summary>
        /// <returns></returns>
        public static HttpClient CreateNonCachingClient()
        {
            var RootFilter = new HttpBaseProtocolFilter();
            RootFilter.CacheControl.WriteBehavior = HttpCacheWriteBehavior.NoCache;
            RootFilter.CacheControl.ReadBehavior = HttpCacheReadBehavior.MostRecent;

            var client = new HttpClient(RootFilter);

            client.EnableGzipDeflate();
            client.DefaultRequestHeaders.CacheControl.TryParseAdd("private");
            client.DefaultRequestHeaders.CacheControl.TryParseAdd("max-age=0");
            client.DefaultRequestHeaders.CacheControl.TryParseAdd("no-cache");
            return client;
        }
Example #2
0
        /// <summary>
        /// Create a new HttpClient with optimal caching settings and gzip / deflate support
        /// </summary>
        /// <returns></returns>
        public static HttpClient CreateOptimisedClient()
        {
            // We can optimize caching even further by using both our local cache AND WinINET's
            // cache in tandem with each other. This also enforces cache busting
            var RootFilter = new HttpBaseProtocolFilter();
            RootFilter.CacheControl.ReadBehavior = HttpCacheReadBehavior.MostRecent;

            if (DeviceInformation.Instance.SupportsSDK10586)
                RootFilter.MaxConnectionsPerServer = 15;

            var client = new HttpClient(RootFilter);
            client.EnableGzipDeflate();

            return client;
        }