using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading; using System.Threading.Tasks; namespace Sony.Filtr.SpotifyWebAPI { //This class exist to correct the invalid etag-values sent by Spotify public class SpotifyHttpMessageHandler : DelegatingHandler { protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { var result = await base.SendAsync(request, cancellationToken); if (result.Headers.Contains("ETag") && result.Headers.ETag == null) { IEnumerable etagValues; if (result.Headers.TryGetValues("ETag", out etagValues)) { var etag = etagValues.FirstOrDefault(); if (etag != null) { string realEtag = etag.Replace("%22", "\""); result.Headers.ETag = new EntityTagHeaderValue(realEtag); } } } return result; } } }