/// <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; }
/// <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; }