我可以通过这种方式从网站上获取HTML代码:
public void Test()
{
WebClient client = new WebClient();
client.DownloadStringCompleted +=
new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
client.DownloadStringAsync(new Uri("http://testUrl.xml"));
}
void client_DownloadStringCompleted(object sender,
DownloadStringCompletedEventArgs e)
{
string html = e.Result;
//Now do something with the string...
}
但我需要每30秒更新一次html,所以我写道:
public void TestMain()
{
DispatcherTimer Timer = new DispatcherTimer()
{
Interval = TimeSpan.FromSeconds(30)
};
Timer.Tick += (s, t) =>
{
Test();
};
Timer.Start();
}
我更改了xml,但我得到了相同的HTML,出了什么问题?
答案 0 :(得分:3)
WebClient
中包含一个缓存。如果您请求两次相同的URI,则第二次直接从缓存中获取整个内容。
无法在WebClient
上禁用缓存,因此您有两种解决方法:
HttpWebRequest
代替WebClient
向URI添加随机参数:
client.DownloadStringAsync(new Uri("http://testUrl.xml?nocache=" + Guid.NewGuid()));