C# WebRequest的cache問題
今天在 RMT Processing 程式中發現一個很大的問題: 如果透過手機/平板/電腦當路由器(例如分享4G網路)時, 手機/平板/電腦可能有類似proxy的功能, 對下載的檔案產生cache, 在C#中如果使用 WebRequest 物件, 會受到這個影響而無法即時更新下載資料, 這問題在一般普通的網路設備 (Hub/Switch...) 並不會發生這個問題, 所以之前都沒有發現到有這個問題.
幸好這可以在程式中指定不要用cache跟系統指定的proxy, 只要在產生WebRequest物件後設定cache為NoCacheNoStore, proxy設定為null即可:
WebRequest req =
WebRequest.Create(imageUrl);
req.CachePolicy = new
System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore);
req.Proxy = null;
沒有留言:
張貼留言