Problem: HttpClient Cache deaktivieren
Wenn man unter WPF einen HttpClient aufbaut, dann findet man im Standard hierzu keine Möglichkeit den Cache auszuschalten.
Somit wird bei einem automatischen Lesen von Webseiten in WPF sehr oft die gleiche Seite aufgerufen als http Document.
Lösung:
Man erstellt in WPF eine WebRequestHandler und weist diesem eine CachePolicy mit NoCacheNoStore zu
WebRequestHandler handler = new WebRequestHandler(); handler.CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.BypassCache);//.NoCacheNoStore);
|
Namespace
using System.Net.Http; //*HttpClientHandler WPF using System.Net.Cache; //*disable Cache |
Beispiel zum HttpClient WebRequest
//< HttpClient > WebRequestHandler handler = new WebRequestHandler(); handler.CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.BypassCache);//.NoCacheNoStore); //HttpRequestCachePolicy requestPolicy =new HttpRequestCachePolicy(HttpCacheAgeControl.MaxAge,TimeSpan.Zero); handler.AllowAutoRedirect = true; HttpClient httpClient = new HttpClient(handler);
string sHTML = ""; //Client Request as string try { sHTML = await httpClient.GetStringAsync(new Uri(sURL)); } catch (Exception ex) { //clsSys.show_Message(ex.Message); clsSys.fx_Log("Error httpClient: " + ex.Message); return null; } //</ HttpClient > |