从服务器下载时下载旧文本文件

时间:2014-06-26 06:57:16

标签: xml c#-4.0 windows-phone-8 httpclient

我正在尝试将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;
                        }

提前致谢。 请帮助。

3 个答案:

答案 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;  

它总是获取最新文件,不会查看缓存。