哈希方法不會在這種情況下工作,由於一些服務器端增加了一個XML註釋:不是哈希和存儲的哈希您只需保持LastUpdatedTime的跟蹤,並定期把它比作最新LastUpdatedTime的即使實際的Feed沒有變化,它也經常非常頻繁地進行緩存。
有一兩件事你可以做哪些工作該飼料是利用HTTP條件請求向服務器給你的數據只有當它的,因爲你最後一次請求的時候居然被修改。
例如:
你就會有一個全局/成員變量從您的飼料
var lastModified = DateTime.MinValue;
舉行的最後修改日期時間則每次你會做類似下面
的請求
var request = (HttpWebRequest)WebRequest.Create("http://www.extremetech.com/feed");
request.IfModifiedSince = lastModified;
try {
using (var response = (HttpWebResponse)request.GetResponse()) {
lastModified = response.LastModified;
using (var stream = response.GetResponseStream()) {
//*** parsing the stream
var reader = XmlReader.Create(stream);
SyndicationFeed feed = SyndicationFeed.Load(reader);
}
}
}
catch (WebException e) {
var response = (HttpWebResponse)e.Response;
if (response.StatusCode != HttpStatusCode.NotModified)
throw; // rethrow an unexpected web exception
}
哈希碰撞的後果是什麼?也就是說,假設兩個文件具有相同的散列值。什麼是可能發生的最糟糕的事情? –
我做了一些更多的測試,如果這是你的確切的feed,這個feed中有一些評論會定期更改,即使非註釋xml標籤永遠不會改變,所以我認爲散列方法根本不會起作用 – MerickOWA
@MerickOWA我想我會只是去使用那就是在SyndicationItem的ID ..如果提要標題或文章被編輯它不會是一個問題可能會更容易:)而這樣! – superlogical