2009-12-02 3 views
2
WebClient Client = new WebClient(); 
Client.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.BypassCache); 

Почему этот код не на самом деле запрещает кэширование сайтов через .Net Web Client?C#: невозможно обходить кеш (WebClient)

+0

Как вы видите, что они кэшируются? Это просто добавляет заголовок к запросу, он не контролирует то, что сервер отправляет. – Cine

ответ

0
string xmlUrl = "http://myserver.com/xmlfile.xml"; 

WebClient client = new WebClient(); 

// prevent file caching by windows 
client.CachePolicy = new System.Net.Cache.RequestCachePolicy(
System.Net.Cache.RequestCacheLevel.NoCacheNoStore 
); 

// read content of file 
Stream rssStream = client.OpenRead(xmlUrl); 

Использование No Cache No Store.

Edit: Если это не сработает, то попробуйте с WebRequest/WebResponse:

WebRequest request = WebRequest.Create(uri); 
     // Define a cache policy for this request only. 
     HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore); 
     request.CachePolicy = noCachePolicy; 
     WebResponse response = request.GetResponse(); 
+0

Я пробовал NoCacheNoStore, а также BypassCache, и они оба не работают. – Paul

+0

Нет RequestCacheLevel работает для меня. Использование webclient в wpf. –

Смежные вопросы