HttpClient ajoute son propre en-tête de cookie

J’ai un problème plutôt étrange. Avec toutes ces questions sur internet comment append et obtenir des cookies, je veux le contraire;)

Lorsque j’essaie d’envoyer une requête via HttpHandler, il ajoute son propre en-tête de cookie. Je dois m’en débarrasser. Sans chercher dans les détails – quand il est ajouté, le serveur que j’essaie de demander me donne une mauvaise réponse. Cela fonctionne sans ce cookie (essayé en fiddler).

Mais revenons au problème, code:

ssortingng domain = "someMysteriousDomain"; var handler = new HttpClientHandler(); handler.UseDefaultCredentials = false; handler.AllowAutoRedirect = true; handler.ClientCertificateOptions = ClientCertificateOption.Manual; handler.UseCookies = false; var httpClient = new HttpClient(handler); var request = new HttpRequestMessage(HttpMethod.Get, domain); request.Headers.UserAgent.Add(new ProductInfoHeaderValue("Mozilla", "5.0")); request.Headers.AcceptEncoding.Add(new SsortingngWithQualityHeaderValue("gzip")); var response = await httpClient.SendAsync(request); 

Demande brute vue dans le violoniste:

 GET https://domain HTTP/1.1 Accept-Encoding: gzip User-Agent: Mozilla/5.0 Host: domain Connection: Keep-Alive Cookie: cadata477E7C1824F44800AF0077724F65345="51595d316-0286-44bb-bc6f-ffb1fd311a92SqJA36rA69YW7aBg+iHXYi9LAcBLN6DBWE8a3MLejd2VCluO/UQ5eF6F6T4NWh4NhdRcv4rea15Hs0e2q6GatMac59UVbljhREYdH6PRbzZC/2qn8QHtpc6go5B56R"; mobile=0 

Je ne veux pas append ce cookie! Comment supprimer / effacer / quoi que ce soit? J’utilise Visual Studio Community 2015, avec Windows Universal Project. Ce qui est intéressant, après avoir redémarré mon PC après quelques heures, j’ai pu faire 2 ou 3 requêtes sans ce cookie (en utilisant le même code), puis le cookie mystérieux est retourné. C’est à propos de quoi? Comment s’en débarrasser?

Merci d’avoir signalé ce problème – il s’agit d’un problème connu lié à l’implémentation de l’API System.Net.Http.HttpClientHandler sur Windows 10 et nous travaillons à sa résolution dans une prochaine version.

En attendant, une solution de rechange possible consiste à utiliser l’API Windows.Web.Http.HttpClient avec la classe HttpBaseProtocolFilter sous-jacente. Cette classe a une propriété appelée CookieManager qui stocke tous les cookies pour chaque URI. Vous pouvez écrire une méthode pour supprimer les cookies du CookieManager pour l’URI de destination avant d’envoyer une demande. Cela garantira qu’aucun cookie ne sera envoyé. Vous pouvez voir cet exemple pour savoir comment supprimer les cookies du CookieManager: https://github.com/Microsoft/Windows-universal-samples/tree/master/httpclient

Merci Sidharth [MSFT]