Comportement de mise en cache System.Net.Http.HttpClient

Je suis en utilisant HttpClient la version 0.6.0 de NuGet.

J'ai le code C# suivant:

var client = new HttpClient(new WebRequestHandler() {
    CachePolicy =
        new HttpRequestCachePolicy(HttpRequestCacheLevel.CacheIfAvailable)
});
client.GetAsync("http://myservice/asdf");

Le service (cette fois, CouchDB) renvoie une valeur ETag et le code d'état 200 OK. Il y est retourné une-tête Cache-Control avec la valeur must-revalidate

Mise à jour, voici les en-têtes de réponse de couchdb (prises à partir du débogueur visual studio):

Server: CouchDB/1.1.1 (Erlang OTP/R14B04)
Etag: "1-27964df653cea4316d0acbab10fd9c04"
Date: Fri, 09 Dec 2011 11:56:07 GMT
Cache-Control: must-revalidate

Prochaine fois que je fais exactement la même demande, HttpClient ne conditionnelle demande et obtient en retour "304 not Modified". Qui est droit.

Cependant, si je suis à l'aide de bas-niveau de la classe HttpWebRequest avec la même CachePolicy, la demande n'est même pas fait la deuxième fois. C'est la manière dont je HttpClient aussi se comporter.

Est le must-revalidate valeur d'en-tête ou pourquoi est-HttpClient se comporter différemment? Je voudrais faire une seule demande, et le reste à partir du cache sans la demande conditionnelle..

(Aussi, comme une note, lors du débogage, le code d'état de Réponse est indiqué que 200 OK, même si le service retourne 304 not Modified)

source d'informationauteur NiklasN