我正在尝试将XML文件从服务器下载到Windows应用商店。
我正在尝试下载文件时正在下载。 但是,当我对XML文件进行更改时,它仍在下载旧文件,并且我的更改未反映出来。 当我在chrome中访问XML文件时......那里有变化。
一段时间后,它会自动下载最后更新的文件......问题仍然存在......
以下是我尝试下载文件的两种方法......
Url:包含服务器上的直接文件路径。
Using XDocument:
string Xml = XDocument.Load(Url,LoadOptions.PreserveWhitespace).ToString();
Using httpClient:
string Xml = String.Empty;
using (var httpClient = new HttpClient())
{
Xml = httpClient.GetStringAsync(Url).Result;
}
提前致谢。 请帮助。
答案 0 :(得分:0)
是的,它听起来像是一个缓存问题。理想情况下,您可以通过让服务器为文件发送正确的缓存策略来解决这个问题(即不要说它的有效时间比实际更长)。如果不这样做,您可以将httpClient.HttpBaseProtocolFilter.HttpCacheControl.ReadBehavior
更改为MostRecent,即使缓存条目看起来有效,也会强制检查更新的内容。
答案 1 :(得分:0)
避免缓存的一种方法是将从当前时间生成的缓存 - 破坏者参数添加到您的网址请求中,例如
my-site/my-xml-file.xml?cachebuster=20140627114601
{year}{month}{day}{hour}{mins}{secs}
答案 2 :(得分:0)
感谢您的反馈......
以下代码解决了我的问题:
var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("Cache-Control", "no-cache");
Xml = httpClient.GetStringAsync(URL).Result;
它总是获取最新文件,不会查看缓存。