2014-06-26 31 views
0

我試圖從服務器下載一個XML文件到Windows應用商店。從服務器下載舊文本文件

雖然我正在下載文件正在下載。 但是,當我對XML文件進行更改時,它仍在下載舊文件,而我的更改未反映出來。 而我訪問鉻文件中的XML文件...的變化在那裏。

一段時間後,它會自動下載最新更新文件......和問題仍然...

下面兩種方法我試圖下載該文件...

網址:包含直接文件路徑在服務器上。

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

感謝反饋...

下面的代碼解決了我的問題:

var httpClient = new HttpClient(); 

    httpClient.DefaultRequestHeaders.Add("Cache-Control", "no-cache"); 

    Xml = httpClient.GetStringAsync(URL).Result; 

它總是得到最新的文件,不考慮緩存。

0

是的,它聽起來像是一個緩存問題。理想情況下,您可以通過讓服務器爲文件發送正確的緩存策略來解決這個問題(即不要說它的有效期比實際長)。否則,您可以將httpClient.HttpBaseProtocolFilter.HttpCacheControl.ReadBehavior更改爲MostRecent,即使緩存條目似乎有效,它也會始終強制檢查更新的內容。

+0

嗨感謝您的答案...但它不支持WP8.1商店應用程序...但它肯定是緩存問題... – Krunal

0

避免高速緩存的一種方法是將當前時間生成的cache-buster參數添加到您的url請求中,例如

my-site/my-xml-file.xml?cachebuster=20140627114601 

{year}{month}{day}{hour}{mins}{secs}